fork(2) download
  1. #include <string>
  2. #include <type_traits>
  3.  
  4. struct Ip
  5. {
  6. std::string ip;
  7. };
  8.  
  9. template <typename T>
  10. typename std::enable_if<!std::is_integral<T>::value && !std::is_floating_point<T>::value, bool>::type
  11. Equal(const std::string& s, const T& data)
  12. {return s == data;}
  13.  
  14. template <typename T>
  15. typename std::enable_if<std::is_integral<T>::value, bool>::type
  16. Equal(const std::string& s, const T& data)
  17. {
  18. //int specific
  19. return false;
  20. }
  21.  
  22. template <typename T>
  23. typename std::enable_if<std::is_floating_point<T>::value, bool>::type
  24. Equal(const std::string& s, const T& data)
  25. {
  26. //Float specific
  27. return false;
  28. }
  29.  
  30. bool Equal(const std::string& s, const Ip& data)
  31. {
  32. //Ip specific
  33. return false;
  34. }
  35.  
  36. int main()
  37. {
  38. Equal("21", 21);
  39. Equal("21", 21.f);
  40. Equal("21","42.5");
  41. Equal("21", Ip{"21"});
  42.  
  43. return 0;
  44. }
  45.  
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
Standard output is empty