fork download
  1. #include <iostream>
  2. #include <typeinfo>
  3. #include <cxxabi.h>
  4.  
  5. template <typename...> struct test {};
  6. template
  7. <
  8. template <typename...> class,
  9. template <typename...> class...
  10. >
  11. struct join;
  12.  
  13. template
  14. <
  15. template <typename... HeadTypes> class... Head
  16. >
  17. struct join<(Head<typename HeadTypes...>)...>
  18. {
  19. typedef typename Head<HeadTypes......> result;
  20. };
  21.  
  22. int main()
  23. {
  24. int status;
  25. std::cout << abi::__cxa_demangle(typeid(join<test<int, int, char>, test<double, double char>, test<int>>::result).name(), 0, 0, &status) << std::endl;
  26.  
  27. return 0;
  28. }
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
prog.cpp:17:42: error: expected parameter pack before '...'
prog.cpp:17:45: error: template argument 1 is invalid
prog.cpp: In function 'int main()':
prog.cpp:25:89: error: two or more data types in declaration of 'type name'
prog.cpp:25:104: error: type/value mismatch at argument 1 in template parameter list for 'template<template<class ...> class<template-parameter-1-1>, template<class ...> class ...<template-parameter-1-2> > struct join'
prog.cpp:25:104: error:   expected a class template, got 'test<int, int, char>'
prog.cpp:25:104: error: type/value mismatch at argument 2 in template parameter list for 'template<template<class ...> class<template-parameter-1-1>, template<class ...> class ...<template-parameter-1-2> > struct join'
prog.cpp:25:104: error:   expected a class template, got 'test<int>'
stdout
Standard output is empty