fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4.  
  5.  
  6. template <class T>
  7. void foo(const T& t)
  8. {
  9. static_assert( sizeof( T ) > 0, "Unknown container");
  10. }
  11.  
  12.  
  13. template <class A, class B>
  14. void foo( const std::vector<A,B> & v)
  15. {
  16. std::cout << v.size() << std::endl;
  17. }
  18.  
  19. template <class A, class B, class C, class D>
  20. void foo( const std::map<A,B,C,D> & v)
  21. {
  22. std::cout << v.size() << std::endl;
  23. }
  24.  
  25.  
  26. int main()
  27. {
  28. std::vector<int> v = { 1, 2, 3 };
  29. foo(v);
  30. std::map<int,int> v2 = { {1,2},{3,4} };
  31. foo(v2);
  32.  
  33. return 0;
  34. }
Success #stdin #stdout 0s 4516KB
stdin
Standard input is empty
stdout
3
2