fork download
  1. #include <iostream>
  2. #include <memory>
  3.  
  4. class Foo {};
  5.  
  6. template <typename T>
  7. class A {
  8. public:
  9. virtual void foo() = 0;
  10. };
  11.  
  12. template <typename S, typename T>
  13. class B : public A<T> {
  14. public:
  15. void foo() override {
  16. std::cout << "Hello";
  17. }
  18. };
  19.  
  20. int main() {
  21. std::unique_ptr<B<int, Foo>> t = std::make_unique<B<int, Foo>>();
  22. std::unique_ptr<A<Foo>> p = std::move(t);
  23. p->foo();
  24. // your code goes here
  25. return 0;
  26. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Hello