// Ordered slots hello world example for Boost.Signals2 // Copyright Douglas Gregor 2001-2004. // Copyright Frank Mori Hess 2009. // // Use, modification and // distribution is subject to the Boost Software License, Version // 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // For more information, see http://www.boost.org #include #include struct Hello { void operator()() const { std::cout << "Hello"; } }; struct World { void operator()() const { std::cout << ", World!" << std::endl; } }; //[ good_morning_def_code_snippet struct GoodMorning { void operator()() const { std::cout << "... and good morning!" << std::endl; } }; //] int main() { //[ hello_world_ordered_code_snippet boost::signals2::signal sig; sig.connect(1, World()); // connect with group 1 sig.connect(0, Hello()); // connect with group 0 //] //[ hello_world_ordered_invoke_code_snippet // by default slots are connected at the end of the slot list sig.connect(GoodMorning()); // slots are invoked this order: // 1) ungrouped slots connected with boost::signals2::at_front // 2) grouped slots according to ordering of their groups // 3) ungrouped slots connected with boost::signals2::at_back sig(); //] return 0; }