fork download
  1. #include <iostream>
  2. #include <utility>
  3.  
  4. template<class T>
  5. std::enable_if_t<std::is_fundamental<std::remove_reference_t<T>>::value> reset(T&&)
  6. {
  7. std::cout << 1 << std::endl;
  8. }
  9.  
  10. template<class T>
  11. std::enable_if_t<std::is_pointer<std::remove_reference_t<T>>::value> reset(T&&)
  12. {
  13. std::cout << 2 << std::endl;
  14. }
  15.  
  16. template<class T>
  17. std::enable_if_t<std::is_array<std::remove_reference_t<T>>::value> reset(T&&)
  18. {
  19. std::cout << 3 << std::endl;
  20. }
  21.  
  22. int main()
  23. {
  24.  
  25. int nRetCode = 0;
  26.  
  27. char mass[10];
  28. char *pmass=mass;
  29.  
  30. reset(mass);
  31. reset(pmass);
  32. reset(nRetCode);
  33. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
3
2
1