// Example program for returning a value from slots to signal invocation. // // 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 //[ signal_return_value_slot_defs_code_snippet float product(float x, float y) { return x * y; } float quotient(float x, float y) { return x / y; } float sum(float x, float y) { return x + y; } float difference(float x, float y) { return x - y; } //] int main() { boost::signals2::signal sig; //[ signal_return_value_main_code_snippet sig.connect(&product); sig.connect("ient); sig.connect(&sum); sig.connect(&difference); // The default combiner returns a boost::optional containing the return // value of the last slot in the slot list, in this case the // difference function. std::cout << *sig(5, 3) << std::endl; //] }