#ifndef OPENMW_COMPONENTS_ESM4_TYPETRAITS #define OPENMW_COMPONENTS_ESM4_TYPETRAITS #include namespace ESM4 { 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 HasFullName : std::false_type { }; template struct HasFullName> : std::true_type { }; template inline constexpr bool hasFullName = HasFullName::value; template > struct HasCellFlags : std::false_type { }; template struct HasCellFlags> : std::true_type { }; template inline constexpr bool hasCellFlags = HasCellFlags::value; template > struct HasX : std::false_type { }; template struct HasX> : std::true_type { }; template inline constexpr bool hasX = HasX::value; template > struct HasY : std::false_type { }; template struct HasY> : std::true_type { }; template inline constexpr bool hasY = HasY::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