#include <signal_selector.hpp>
This can be used to determine which signal out of a group of signals will continue through the selector (the others will not be forwarded).
Example:
void selector_test() { SignalVoid banger; SignalFloat floater1(1.0f), floater2(2.0f); SignalFloatCollector collector; signal_selector<2, void (float)> selector; banger >>= floater1 >>= slot_selector<void(float)>(selector, &signal_selector<2, void (float)>::input1); banger >>= floater2 >>= slot_selector<void(float)>(selector, &signal_selector<2, void (float)>::input2); selector >>= collector; selector.select(0); banger.Bang(); BOOST_CHECK(collector.GetLast() == optional<float>()); selector.select(1); banger.Bang(); BOOST_CHECK(collector.GetLast() == optional<float>(1.0f)); selector.select(2); banger.Bang(); BOOST_CHECK(collector.GetLast() == optional<float>(2.0f)); } // end void selector_test()
1.5.1-p1