fork(1) download
  1. #include <iostream>
  2.  
  3. class Base {
  4. public:
  5. virtual void print() { std::cout << "In base"<<std::endl; }
  6. };
  7.  
  8. class Derived : public Base {
  9. public:
  10. virtual void print() override { std::cout << "In derived"<<std::endl; }
  11. };
  12.  
  13. int main() {
  14. auto print = [](Base &&obj){ obj.print(); };
  15. auto doIt = [&print](bool doBase) { doBase ? print(Base{}) : print(Derived{}); };
  16.  
  17. doIt(true);
  18. doIt(false);
  19. }
Success #stdin #stdout 0.01s 5392KB
stdin
Standard input is empty
stdout
In base
In derived