fork download
  1. #include<iostream>
  2.  
  3. // class
  4. template<typename A>
  5. class Foo; // не делаем реализацию, чтоб нескомпилировалось
  6.  
  7. // instance
  8. template<>
  9. class Foo<int> // специализация
  10. {
  11. public:
  12. static
  13. int foo(int x)
  14. {
  15. return x + 1;
  16. }
  17. };
  18.  
  19. template<typename A>
  20. A bar(A a) {
  21. return Foo<A>::foo(a);
  22. }
  23.  
  24. int main() {
  25. int x = 1;
  26. std::cout << bar<int>(x) << std::endl;
  27. }
Success #stdin #stdout 0s 2928KB
stdin
Standard input is empty
stdout
2