From 53de92ca887e4386d8d6acb462be4e4a7978a90b Mon Sep 17 00:00:00 2001 From: Matthias Andreas Benkard Date: Sun, 9 Dec 2012 09:34:27 +0100 Subject: Initial check-in. --- dynvars-test.cpp | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 dynvars-test.cpp (limited to 'dynvars-test.cpp') diff --git a/dynvars-test.cpp b/dynvars-test.cpp new file mode 100644 index 0000000..c80a7ca --- /dev/null +++ b/dynvars-test.cpp @@ -0,0 +1,39 @@ +#include +#include +#include +#include +#include +#include + +#include "dynvars.hpp" + +#include + +using namespace ::std; +using namespace ::boost::signals2; +using namespace ::dynvars; + +#define thread_local __thread +thread_local dynvar greetee; + +function +make_greeter(const string& greeting) { + return [=]() { + cout << greeting << " " << *greetee << "!" << endl; + }; +}; + +int +main(int argc, char **argv) { + greetee = "nobody"; + signal sig; + + sig.connect(make_greeter("Hi")); + + sig(); + with(greetee, "luser", [&](){ sig(); }); + with(greetee, "geek", [&](){ sig(); }); + sig(); + + return EXIT_SUCCESS; +} -- cgit v1.2.3