ECSTASY
All in the name
Loading...
Searching...
No Matches
modifier_allocator_size.hpp
Go to the documentation of this file.
1
11
12#ifndef ECSTASY_REGISTRY_CONCEPTS_MODIFIERALLOCATORSIZE_HPP_
13#define ECSTASY_REGISTRY_CONCEPTS_MODIFIERALLOCATORSIZE_HPP_
14
18
19namespace ecstasy
20{
30 template <typename... Qs>
31 struct modifiers_allocator_size : public std::integral_constant<size_t, 0> {};
32
42 template <typename Q>
43 struct modifier_allocator_size : public std::integral_constant<size_t, 0> {};
44
46 template <RegistryModifier M>
47 struct modifier_allocator_size<M> : public modifier_allocator_size<typename M::Modifier> {};
48
50 template <query::Modifier M>
52 : public std::integral_constant<size_t, sizeof(M) + modifier_allocator_size<typename M::Operands>::value> {};
53
55 template <typename Q, typename... Qs>
56 struct modifier_allocator_size<util::meta::Traits<Q, Qs...>>
57 : public std::integral_constant<size_t, modifiers_allocator_size<Q, Qs...>::value> {};
58
67 template <typename Q>
69
71 template <typename Q, typename... Qs>
72 struct modifiers_allocator_size<Q, Qs...>
73 : public std::integral_constant<size_t, modifier_allocator_size_v<Q> + modifiers_allocator_size<Qs...>::value> {
74 };
75
85 template <typename Q, typename... Qs>
86 size_t constexpr modifiers_allocator_size_v = modifiers_allocator_size<Q, Qs...>::value;
87
88} // namespace ecstasy
89
90#endif /* !ECSTASY_REGISTRY_CONCEPTS_MODIFIERALLOCATORSIZE_HPP_ */
Contains the concepts for queryable objects.
Defines a RegistryModifier concept.
Contains the concepts for query modifiers.
Namespace containing all symbols specific to ecstasy.
Definition ecstasy.hpp:30
size_t constexpr modifier_allocator_size_v
Helper for modifier_allocator_size<Q>::value.
size_t constexpr modifiers_allocator_size_v
Helper for modifiers_allocator_size<Q, Qs...>::value.
Namespace regrouping helpers used by ecstasy but not specific to ecstasy.
Definition Queryable.hpp:21
Get the allocator required size for this queryable.
Get the allocator required size for a list of queryables.