diff --git a/tests/library/verb-function-dispatch-test.cpp b/tests/library/verb-function-dispatch-test.cpp index 8775cfcb3..b93970d4d 100644 --- a/tests/library/verb-function-dispatch-test.cpp +++ b/tests/library/verb-function-dispatch-test.cpp @@ -28,7 +28,7 @@ //#include #include -//#include +#include #include //#include @@ -36,7 +36,7 @@ //using util::contains; using std::string; using util::_Fmt; -//using std::cout; +using std::cout; //using std::endl; @@ -48,7 +48,7 @@ namespace test{ { using Ret = typename lib::meta::_Fun::Ret; - typedef Ret REC::*Handler (void); + typedef Ret (REC::*Handler) (void); Handler handler_; @@ -56,10 +56,21 @@ namespace test{ Ret applyTo (REC& receiver) { - return receiver.*handler_(); + return (receiver.*handler_)(); } + + operator string() + { + UNIMPLEMENTED("string representation of verb tokens"); + } + + VerbToken(Handler handlerFunction) + : handler_(handlerFunction) + { } + protected: }; + class Receiver { public: @@ -76,6 +87,11 @@ namespace test{ using Verb = VerbToken; using VerbSeq = std::initializer_list; + + Verb WOOF(&Receiver::woof); + Verb HONK(&Receiver::honk); + Verb MOO(&Receiver::moo); + Verb MEH(&Receiver::meh); }