9 #ifndef RAD_CORE_GETPAYLOAD_HPP_
10 #define RAD_CORE_GETPAYLOAD_HPP_
12 #include <rad/anyEvent.hpp>
28 template <
typename EVENT>
29 typename EVENT::payload_t&
GetPayload(AnyEvent& ev) {
30 if (
typeid(ev) !=
typeid(EVENT)) {
31 throw IncorrectEventType(
"Wrong event type");
39 template <
typename EVENT>
40 typename EVENT::payload_t
const&
GetPayload(AnyEvent
const& ev) {
41 return GetPayload<EVENT>(
const_cast<AnyEvent&
>(ev));
56 template <
typename EVENT>
58 if (
typeid(ev) !=
typeid(EVENT)) {
67 template <
typename EVENT>
69 if (
typeid(ev) !=
typeid(EVENT)) {
72 return &
static_cast<EVENT*
>(
const_cast<AnyEvent*
>(&ev))->GetPayload();
77 #endif // #ifndef RAD_CORE_GETPAYLOAD_HPP_
EVENT::payload_t & GetPayload(AnyEvent &ev)
Definition: getPayload.hpp:29
EVENT::payload_t * GetPayloadNothrow(AnyEvent &ev)
Definition: getPayload.hpp:57