orange-text / src / tmt / serialization / private / ClassTraits.h

#ifndef TMT__SERIALIZATION__PRIVATE__CLASS_TRAITS_H
#define TMT__SERIALIZATION__PRIVATE__CLASS_TRAITS_H

namespace TMT
{
namespace Serialization
{
/// \cond
namespace Implementation
{
template<class T>
struct SerializationClassIsPolymorphic
{
	static const bool value = false;
};
template<class T>
struct SerializationClassIsPOD
{
	static const bool value = false;
};
template<> struct SerializationClassIsPOD<char>
{
	static const bool value = true;
};
template<> struct SerializationClassIsPOD<unsigned char>
{
	static const bool value = true;
};
template<> struct SerializationClassIsPOD<short>
{
	static const bool value = true;
};
template<> struct SerializationClassIsPOD<unsigned short>
{
	static const bool value = true;
};
template<> struct SerializationClassIsPOD<int>
{
	static const bool value = true;
};
template<> struct SerializationClassIsPOD<unsigned int>
{
	static const bool value = true;
};
template<> struct SerializationClassIsPOD<long>
{
	static const bool value = true;
};
template<> struct SerializationClassIsPOD<unsigned long>
{
	static const bool value = true;
};
template<> struct SerializationClassIsPOD<float>
{
	static const bool value = true;
};
template<> struct SerializationClassIsPOD<double>
{
	static const bool value = true;
};
}
/// \endcond
}
}


#define TMT_SERIALIZATION_POLYMORPHIC(CLASS) \
namespace TMT\
{\
namespace Serialization\
{\
namespace Implementation\
{\
template<> \
struct SerializationClassIsPolymorphic<CLASS> \
{ \
	static const bool value = true; \
};\
}\
}\
}

#define TMT_SERIALIZATION_SET_POD(CLASS) \
namespace TMT\
{\
namespace Serialization\
{\
namespace Implementation\
{\
template<> \
struct SerializationClassIsPOD<CLASS> \
{ \
	static const bool value = true; \
};\
}\
}\
}

#endif
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.