7 static_assert(std::is_copy_constructible_v<EventVariant>,
"EventVariant must be copy constructible");
10 template <
typename Event>
11 EventRef(Event& event)
12 requires(!std::same_as<std::decay_t<Event>, EventRef> && std::is_const_v<Event>)
13 : variant_(std::cref(event)) {}
15 template <
typename Event>
16 EventRef(Event& event)
17 requires(!std::same_as<std::decay_t<Event>, EventRef> && !std::is_const_v<Event>)
18 : variant_(std::ref(event)) {}
20 EventRef(
const EventRef& other) =
default;
22 EventVariant& get() {
return variant_; }
24 EventVariant
const& get()
const {
return variant_; }
27 EventVariant variant_;