Skip to content

Latest commit

 

History

History
110 lines (61 loc) · 5.37 KB

File metadata and controls

110 lines (61 loc) · 5.37 KB

 

 

 

 

 

 

C++11STLQt CreatorLubuntu

 

std::function example 2: member functions is a std::function example.

 

Technical facts

 

Operating system(s) or programming environment(s)

IDE(s):

Project type:

C++ standard:

Compiler(s):

Libraries used:

  • STL STL: GNU ISO C++ Library, version 4.9.2

 

 

 

 

 

Qt project file: ./CppStdFunctionExample2/CppStdFunctionExample2.pro

 


TEMPLATE = app CONFIG += console CONFIG -= app_bundle CONFIG -= qt SOURCES += main.cpp # # # Type of compile # # CONFIG(debug, debug|release) {   message(Debug mode) } CONFIG(release, debug|release) {   message(Release mode)   #Remove all asserts and TRACE   DEFINES += NDEBUG NTRACE_BILDERBIKKEL } # # # Platform specific # # # # # Compiler flags # # QMAKE_CXXFLAGS += -std=c++11 -Wall -Wextra unix {   QMAKE_CXXFLAGS += -Werror }

 

 

 

 

 

./CppStdFunctionExample2/main.cpp

 


#include <iostream> #include <functional> struct Speaker {   Speaker(const std::string hello_message, const std::string bye_message)     : m_hello_message(hello_message),       m_bye_message(bye_message)   {   }   void SayHello() const { std::cout << m_hello_message << '\n'; }   void SayBye() const { std::cout << m_bye_message << '\n'; }   const std::string m_hello_message;   const std::string m_bye_message; }; int main() {   const Speaker s1("Hello!","Bye!");   const Speaker s2("HELLO!","BYE!");   const std::function<void (const Speaker*)> say_hello_function = &Speaker::SayHello;   const std::function<void (const Speaker*)> say_bye_function = &Speaker::SayBye;   say_hello_function(&s1);   say_bye_function(&s1);   say_hello_function(&s2);   say_bye_function(&s2); } /* Screen output: Hello! Bye! HELLO! BYE! Press <RETURN> to close this window... */