#ifndef OPENMW_COMPONENTS_ESM4_TYPETRAITS #define OPENMW_COMPONENTS_ESM4_TYPETRAITS #include namespace ESM4 { template > struct HasFormId : std::false_type { }; template struct HasFormId> : std::true_type { }; template inline constexpr bool hasFormId = HasFormId::value; template > struct HasParentFormId : std::false_type { }; template struct HasParentFormId> : std::true_type { }; template inline constexpr bool hasParentFormId = HasParentFormId::value; template > struct HasParent : std::false_type { }; template struct HasParent> : std::true_type { }; template inline constexpr bool hasParent = HasParent::value; template > struct HasFlags : std::false_type { }; template struct HasFlags> : std::true_type { }; template inline constexpr bool hasFlags = HasFlags::value; template > struct HasEditorId : std::false_type { }; template struct HasEditorId> : std::true_type { }; template inline constexpr bool hasEditorId = HasEditorId::value; template > struct HasNif : std::false_type { }; template struct HasNif> : std::true_type { }; template inline constexpr bool hasNif = HasNif::value; template > struct HasKf : std::false_type { }; template struct HasKf> : std::true_type { }; template inline constexpr bool hasKf = HasKf::value; template > struct HasType : std::false_type { }; template struct HasType> : std::true_type { }; template inline constexpr bool hasType = HasType::value; template > struct HasValue : std::false_type { }; template struct HasValue> : std::true_type { }; template inline constexpr bool hasValue = HasValue::value; template > struct HasData : std::false_type { }; template struct HasData> : std::true_type { }; template inline constexpr bool hasData = HasData::value; } #endif // OPENMW_COMPONENTS_ESM4_TYPETRAITS