2 #include <score/serialization/IsTemplate.hpp>
10 concept abstract_base = std::decay_t<T>::is_abstract_base_tag::value;
14 concept identified_object = T::identified_object_tag;
18 concept identified_entity = T::entity_tag;
27 template <
typename T,
typename U =
void>
31 static constexpr
bool value =
false;
35 struct base_kind<T, std::enable_if_t<!std::is_same_v<T, typename T::score_base_type>>>
38 static constexpr
bool value =
true;
89 requires(!identified_object<T> && abstract_base<T> && !is_custom_serialized<T>::value)
97 identified_object<T> && !identified_entity<T> && !abstract_base<T>
98 && !is_custom_serialized<T>::value)
104 template <
typename T>
106 identified_object<T> && !identified_entity<T> && abstract_base<T>
107 && !is_custom_serialized<T>::value)
113 template <
typename T>
114 requires(identified_entity<T> && !abstract_base<T> && !is_custom_serialized<T>::value)
120 template <
typename T>
121 requires(identified_entity<T> && abstract_base<T> && !is_custom_serialized<T>::value)
127 template <
typename T>
129 is_template<T>::value
130 && !abstract_base<T> && !identified_object<T> && !is_custom_serialized<T>::value)
136 template <
typename T>
137 requires(is_custom_serialized<T>::value)
143 template <
typename T>
144 requires(std::is_enum<T>::value)
150 template <
typename T>
153 using type_limits = std::numeric_limits<std::underlying_type_t<T>>;
154 using int_limits = std::numeric_limits<int32_t>;
155 static constexpr
bool value = type_limits::min() >= int_limits::min()
156 && type_limits::max() <= int_limits::max();
Definition: VisitorTags.hpp:29
Definition: VisitorTags.hpp:152
Definition: VisitorTags.hpp:24
Definition: VisitorTags.hpp:21
Definition: VisitorTags.hpp:84
Classes that inherit from score::Entity and score::SerializableInterface.
Definition: VisitorTags.hpp:64
Definition: VisitorTags.hpp:54
Classes that only inherit from score::SerializableInterface.
Definition: VisitorTags.hpp:43
All the other types.
Definition: VisitorTags.hpp:79
Classes that only inherit from score::Entity.
Definition: VisitorTags.hpp:59
Enums.
Definition: VisitorTags.hpp:74
Classes that only inherit from score::IdentifiedObject.
Definition: VisitorTags.hpp:48
Template classes.
Definition: VisitorTags.hpp:69