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...);
85 REQUIRE (
"NIL" != token_);
86 return (receiver.*handler_)(std::forward<ARGS>(args)...);
90 : handler_(handlerFunction)
101 operator string()
const
103 return string(token_);
119#define VERB(RECEIVER, FUN) VERB_##FUN (&RECEIVER::FUN, STRINGIFY(FUN))
Literal const & getID() const
RET applyTo(REC &receiver, ARGS &&...args)
VerbToken(Handler handlerFunction, Literal token)
Implementation namespace for support and library code.
bool operator==(PtrDerefIter< I1 > const &il, PtrDerefIter< I2 > const &ir)
Supporting equality comparisons...
bool operator!=(PtrDerefIter< I1 > const &il, PtrDerefIter< I2 > const &ir)
Action token implemented by double dispatch to a handler function, as defined in the "receiver" inter...
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...