fork download
  1. #include <type_traits>
  2. #include <iostream>
  3.  
  4. template <class T, class T1 = void>
  5. struct foo
  6. {
  7. static constexpr char* a = "primary definition\n";
  8. };
  9.  
  10. struct A
  11. {
  12. };
  13.  
  14. template <class T>
  15. struct foo<T, A>
  16. {
  17. static constexpr char* a = "secondary definition\n";
  18. };
  19.  
  20. int main() {
  21. std::cout << foo<int>::a << ", " << foo<int,A>::a << std::endl;
  22. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
primary definition
, secondary definition