fork(1) download
  1. #include <type_traits>
  2.  
  3. struct CByteArray {};
  4. struct HLVariant {
  5. HLVariant() {}
  6. HLVariant(const HLVariant&) {}
  7. HLVariant(const CByteArray&) {}
  8.  
  9. };
  10.  
  11. template <typename T>
  12. inline typename std::enable_if<!std::is_pod<T>::value, CByteArray>::type serialize(const T& value)
  13. {
  14. return serialize(HLVariant(value));
  15. }
  16.  
  17. template <typename T>
  18. inline typename std::enable_if<std::is_pod<T>::value, CByteArray>::type serialize(const T& value)
  19. {
  20. return CByteArray();
  21. }
  22.  
  23. template <>
  24. inline CByteArray serialize(const HLVariant& value)
  25. {
  26. return CByteArray();
  27. }
  28.  
  29. int main()
  30. {
  31. serialize(0);
  32. serialize(CByteArray());
  33. serialize(HLVariant());
  34.  
  35. return 0;
  36. }
Success #stdin #stdout 0s 3292KB
stdin
Standard input is empty
stdout
Standard output is empty