fork download
  1. #include <iostream>
  2. #include <array>
  3.  
  4.  
  5. template<template<typename>class T,typename...Args>
  6. struct A<T<Args...>>
  7. {
  8. constexpr static int value=1;
  9. };
  10.  
  11. template<template<typename>class T,typename...Args>
  12. struct A<T<Args...> const>
  13. {//const container used for type of return arguments
  14. constexpr static int value=2;
  15. };
  16.  
  17. int main()
  18. {
  19. using Type=const std::array<int,10>;
  20. std::cout<<A<Type>::value;
  21. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:6:8: error: ‘A’ is not a class template
 struct A<T<Args...>>
        ^
prog.cpp:12:26: error: type/value mismatch at argument 1 in template parameter list for ‘template<template<class> class T, class ... Args> struct A’
 struct A<T<Args...> const>
                          ^
prog.cpp:12:26: error:   expected a class template, got ‘const T<Args ...>’
prog.cpp: In function ‘int main()’:
prog.cpp:20:22: error: type/value mismatch at argument 1 in template parameter list for ‘template<template<class> class T, class ... Args> struct A’
     std::cout<<A<Type>::value;
                      ^
prog.cpp:20:22: error:   expected a class template, got ‘Type {aka const std::array<int, 10u>}’
stdout
Standard output is empty