fork(1) download
  1. #include<iostream>
  2.  
  3. namespace ns{
  4. struct hoge{};
  5. template<class T>
  6. void f(T&){std::cout<<"ns::f()"<<std::endl;}
  7. }
  8. namespace ns1{
  9. template<class T>
  10. struct hoge1{};
  11. template<class T>
  12. void f1(T&){std::cout<<"ns1::f1()"<<std::endl;}
  13. }
  14. namespace ns2{
  15. struct hoge2:ns1::hoge1<void(ns::hoge (*)())>{};
  16. template<class T>
  17. void f2(T&){std::cout<<"ns2::f2()"<<std::endl;}
  18. }
  19. namespace ns3{
  20. template<class T>
  21. struct hoge3{};
  22. }
  23.  
  24. int main()
  25. {
  26. ns3::hoge3<ns2::hoge2> a;
  27. //f(a); // ns is not associated namespace
  28. f1(a); // ns1 is associated namespace
  29. f2(a); // ns2 is associated namespace
  30. }
Success #stdin #stdout 0.01s 2724KB
stdin
Standard input is empty
stdout
ns1::f1()
ns2::f2()