-
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161//[C++ Boost] boost::signals2::signal//// 6219 jyj////http://www.boost.org/doc/libs/1_55_0/doc/html/signals2/tutorial.html#pragma once#include <iostream>#include "boost/bind.hpp"#include "boost/signals2.hpp"namespace BoostSignals2SignalTest01{struct HelloWorld{void operator()() const{std::cout << "Hello, World!" << std::endl;}};struct Hello{void operator()() const{std::cout << "Hello";}};struct World{void operator()() const{std::cout << ", World!" << std::endl;}};struct GoodMorning{void operator()() const{std::cout << "... and good morning!" << std::endl;}};void Main(){std::cout << __FILE__ << std::endl;// Signal with no arguments and a void return valueboost::signals2::signal<void ()> sig;std::cout << "[ex1]" << std::endl;// Connect a HelloWorld slotHelloWorld hw;sig.connect(hw);// Call all of the slotssig();// 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_backstd::cout << "[ex2]" << std::endl;Hello h;sig.connect(3, h);World w;sig.connect(0, w);sig();std::cout << "[ex3]" << std::endl;}}
cs //[C++ Boost] boost::signals2::signal
//
// 6219 jyj
//
//http://www.boost.org/doc/libs/1_55_0/doc/html/signals2/tutorial.html
#pragma once
#include <iostream>
#include "boost/bind.hpp"
#include "boost/signals2.hpp"
namespace BoostSignals2SignalTest01
{
struct HelloWorld
{
void operator()() const
{
std::cout << "Hello, World!" << std::endl;
}
};
struct Hello
{
void operator()() const
{
std::cout << "Hello";
}
};
struct World
{
void operator()() const
{
std::cout << ", World!" << std::endl;
}
};
struct GoodMorning
{
void operator()() const
{
std::cout << "... and good morning!" << std::endl;
}
};
void Main()
{
std::cout << __FILE__ << std::endl;
// Signal with no arguments and a void return value
boost::signals2::signal<void ()> sig;
std::cout << "[ex1]" << std::endl;
// Connect a HelloWorld slot
HelloWorld hw;
sig.connect(hw);
// Call all of the slots
sig();
// 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
std::cout << "[ex2]" << std::endl;
Hello h;
sig.connect(3, h);
World w;
sig.connect(0, w);
sig();
std::cout << "[ex3]" << std::endl;
}
}