(C++) BoostSignals2Example3
February 24, 2017 · View on GitHub
(C++) BoostSignals2Example3



Boost.Signals2 example 3 is a Boost.Signals2 example.
Technical facts
Operating system(s) or programming environment(s)
Lubuntu 15.04 (vivid)
Qt Creator 3.1.1
- G++ 4.9.2
Libraries used:
STL: GNU ISO C++ Library, version
4.9.2
Qt project file: ./CppBoostSignals2Example3/CppBoostSignals2Example3.pro
include(../../ConsoleApplication.pri) include(../../Libraries/Boost.pri) SOURCES += main.cpp
./CppBoostSignals2Example3/main.cpp
#include <iostream> #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Weffc++" #pragma GCC diagnostic ignored "-Wunused-local-typedefs" #pragma GCC diagnostic ignored "-Wunused-but-set-parameter" #include <boost/bind.hpp> #include <boost/lambda/lambda.hpp> #include <boost/signals2.hpp> #pragma GCC diagnostic pop //NoIdea is a class that can ask for an answer, but //has no idea what this answer is. It relies on a //Boost.Units2 signal its return value struct NoIdea { NoIdea() : m_signal{} {} void Ask() { if (m_signal()) { std::cout << *m_signal() << '\n'; } else { std::cout << "[No one answers]" << '\n'; } } boost::signals2::signal<std::string()> m_signal; }; const std::string SayX() { return "The answer"; } int main() { NoIdea x; x.Ask(); x.m_signal.connect(&SayX); x.Ask(); }