by GCC for wandbox.
                  
                  
                  #include <iostream>
                  
                  
                  #include <cstdlib>
                  
                  
                  #include <functional>
                  
                  
                  
                  
                  
                  template<typename ... TBases>
                  
                  
                  struct Holder: public TBases ...
                  
                  
                  {
                  
                  
                  
                  
                  
                      std::function<void()> member;
                  
                  
                  };
                  
                  
                  
                  
                  
                  struct A
                  
                  
                  {
                  
                  
                      void foo()
                  
                  
                      {
                  
                  
                      
                  
                  
                      }
                  
                  
                  };
                  
                  
                  
                  
                  
                  struct B
                  
                  
                  {
                  
                  
                      void bar()
                  
                  
                      {
                  
                  
                      
                  
                  
                      }
                  
                  
                  };
                  
                  
                  
                  
                  
                  int main()
                  
                  
                  {   
                  
                  
                      Holder<A,B> test;
                  
                  
                      test.member = { []{ std::cout << "Hello, Wandbox!" << std::endl; } };    
                  
                  
                      
                  
                  
                      return 0;
                  
                  
                      
                  
                  
                  }
                  
                  
                  
                  
                  
                  Есть вот такая штука. Как можно вызывать member и из A и из B?
                  
                  
                
CRTP?
привести this к наследнику
Обсуждают сегодня