fork(1) download
  1. #include <iostream>
  2. #include <type_traits>
  3.  
  4. struct T {
  5. enum { signed_t,unsigned_t } m_type;
  6. template <typename Signed,
  7. std::enable_if_t<std::is_signed<Signed>::value, bool> = true
  8. >
  9. T(Signed) : m_type(signed_t) {}
  10.  
  11. template <typename Unsigned,
  12. std::enable_if_t<std::is_unsigned<Unsigned>::value, bool> = true
  13. >
  14. T(Unsigned) : m_type(unsigned_t) {}
  15. };
  16.  
  17.  
  18. int main()
  19. {
  20. std::cout << T(5).m_type << '\n' << T(5u).m_type << '\n';
  21. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
0
1