fork download
  1. #include <iostream>
  2. #include <type_traits>
  3.  
  4.  
  5. template<typename T>
  6. void equal(const T lhs, const T rhs, std::true_type) noexcept {
  7. std::cout << "integer overload!!\xa";
  8. }
  9.  
  10. template<typename T>
  11. void equal(const T lhs, const T rhs, std::false_type) noexcept {
  12. std::cout << "non integer overload!!\xa";
  13. }
  14.  
  15. template<typename T>
  16. void equal(const T lhs, const T rhs) noexcept {
  17. equal(lhs, rhs,
  18. typename std::conditional<
  19. std::is_integral<T>::value,
  20. std::true_type,
  21. std::false_type
  22. >::type());
  23. }
  24.  
  25. int main()
  26. {
  27. equal(10.f,20.f);
  28. }
Success #stdin #stdout 0s 4416KB
stdin
Standard input is empty
stdout
non integer overload!!