12 template<
typename T,
typename =
void>
13 struct has_Strings : std::false_type {};
15 struct has_Strings<T, std::void_t<typename T::Text>> : std::true_type {};
18 template<
typename T,
typename =
void>
19 struct has_Ints : std::false_type {};
21 struct has_Ints<T, std::void_t<typename T::Ints>> : std::true_type {};
24 template<
typename T,
typename =
void>
25 struct has_Floats : std::false_type {};
27 struct has_Floats<T, std::void_t<typename T::Floats>> : std::true_type {};
30 template<
typename T,
typename =
void>
31 struct has_Booleans : std::false_type {};
33 struct has_Booleans<T, std::void_t<typename T::Floats>> : std::true_type {};
87 template<
typename Manifest>
107 template<
typename M = Manifest>
108 static std::enable_if_t<has_Strings<M>::value,
const std::string&>
109 get(
typename M::Text config);
119 template<
typename M = Manifest>
120 static std::enable_if_t<has_Ints<M>::value,
int>
121 get(
typename M::Integers config);
131 template<
typename M = Manifest>
132 static std::enable_if_t<has_Floats<M>::value,
float>
133 get(
typename M::Floats config);
143 template<
typename M = Manifest>
144 static std::enable_if_t<has_Booleans<M>::value,
bool>
145 get(
typename M::Booleans config);
150#include "../../../src/Resources/ConfigManager.tpp"
Manifest-driven accessor for typed configuration values.
static std::enable_if_t< has_Floats< M >::value, float > get(typename M::Floats config)
Retrieve a float config value.
static std::enable_if_t< has_Ints< M >::value, int > get(typename M::Integers config)
Retrieve an integer config value.
static void ensureInitialized()
Ensure the manifest's config values have been registered.
static std::enable_if_t< has_Booleans< M >::value, bool > get(typename M::Booleans config)
Retrieve a boolean config value.
static std::enable_if_t< has_Strings< M >::value, const std::string & > get(typename M::Text config)
Retrieve a string config value.