38 #ifndef LIB_VERB_TOKEN_H 39 #define LIB_VERB_TOKEN_H 68 template<
class REC,
class SIG>
71 template<
class REC,
class RET,
typename... ARGS>
75 typedef RET (REC::*Handler) (ARGS...);
83 applyTo (REC& receiver, ARGS&& ...args)
85 REQUIRE (
"NIL" != token_);
86 return (receiver.*handler_)(std::forward<ARGS>(args)...);
90 : handler_(handlerFunction)
101 operator string()
const 103 return string(token_);
116 bool operator!= (
VerbToken const& o)
const {
return token_ != o.token_; }
119 #define VERB(RECEIVER, FUN) VERB_##FUN (&RECEIVER::FUN, STRINGIFY(FUN)) Action token implemented by double dispatch to a handler function, as defined in the "receiver" inter...
inline string literal This is a marker type to indicate that
bool operator==(PtrDerefIter< I1 > const &il, PtrDerefIter< I2 > const &ir)
Supporting equality comparisons...
Implementation namespace for support and library code.
Marker types to indicate a literal string and a Symbol.
Tiny helper functions and shortcuts to be used everywhere Consider this header to be effectively incl...