![]() |
Home | Libraries | People | FAQ | More |
Multiple outputs can be achieved by introducing additional signals in the class.
Table 1.11. multiple outs example
|
fused |
unfused |
|---|---|
|
|
SignalOutIntFloat multi_out(2.5f); signals::storage<void (float), signals::unfused> float_collector(0); signals::storage<void (int), signals::unfused> int_collector(0); multi_out >>= float_collector; multi_out.out_int >>= int_collector; multi_out(); BOOST_CHECK_EQUAL(float_collector.at<0>(), 2.5f); BOOST_CHECK_EQUAL(int_collector.at<0>(), 2);
|
The example uses the following classes:
class SignalOutIntFloat : public signals::filter<void (float), signals::unfused> { public: SignalOutIntFloat(float x) : x(x) {} void operator()() { out(x); out_int((int)x); } boost::signal<void (int)> out_int; private: float x; }; // end class SignalOutIntFloat
| Copyright © 2007 Stjepan Rajko |