fork(1) download
  1. #include <iostream>
  2. #include <type_traits>
  3.  
  4. template <typename T>
  5. typename std::enable_if<std::is_integral<T>::value && std::is_signed<T>::value,
  6. int>::type f()
  7. {
  8. std::cout << "signed\n";
  9. return 42;
  10. }
  11.  
  12. template <typename T>
  13. typename std::enable_if<std::is_integral<T>::value && !std::is_signed<T>::value,
  14. unsigned>::type f()
  15. {
  16. std::cout << "unsigned\n";
  17. return 42;
  18. }
  19.  
  20.  
  21. int main() {
  22. f<int>();
  23. f<unsigned int>();
  24. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
signed
unsigned