mirror of
https://github.com/Milxnor/Project-Reboot-3.0.git
synced 2026-01-13 19:02:21 +01:00
28 lines
625 B
C++
28 lines
625 B
C++
#pragma once
|
|
|
|
#include "inc.h"
|
|
|
|
#include "IsPointer.h"
|
|
#include "AndOrNot.h"
|
|
#include "IsArithmetic.h"
|
|
|
|
/**
|
|
* Traits class which tests if a type is POD.
|
|
*/
|
|
|
|
#if defined(_MSC_VER) && _MSC_VER >= 1900
|
|
// __is_pod changed in VS2015, however the results are still correct for all usages I've been able to locate.
|
|
#pragma warning(push)
|
|
#pragma warning(disable:4647)
|
|
#endif // _MSC_VER == 1900
|
|
|
|
template <typename T>
|
|
struct TIsPODType
|
|
{
|
|
enum { Value = TOrValue<__is_pod(T) || __is_enum(T), TIsArithmetic<T>, TIsPointer<T>>::Value };
|
|
};
|
|
|
|
#if defined(_MSC_VER) && _MSC_VER >= 1900
|
|
#pragma warning(pop)
|
|
#endif // _MSC_VER >= 1900
|