Feature #2295
Updated by Junxiao Shi almost 10 years ago
Develop a `ScopedEventId` type which stores an `EventId` and cancels it upon destruction. * `ScopedEventId` is default constructible; it doesn't contain an `EventId` when default constructed * `ScopedEventId` is implicitly constructible assignable from `EventId` * `ScopedEventId` is assignable from `EventId` * when `ScopedEventId` is destructed, the `EventId` it holds is cancelled * when a different `EventId` is assigned to `ScopedEventId`, the `EventId` it previously holds is cancelled * `ScopedEventId` is noncopyable * `ScopedEventId` is moveable