1 #ifndef fhiclcpp_type_traits_h 2 #define fhiclcpp_type_traits_h 16 #include <type_traits> 29 template <
typename T,
typename KeysToIgnore>
37 template <
typename... ARGS>
39 template <
typename... ARGS>
42 template <
typename T, std::
size_t SZ>
44 template <
typename T, std::
size_t SZ>
47 template <
typename T,
typename... ARGS>
49 template <
typename T,
typename... ARGS>
52 template <
typename T,
typename Config>
54 template <
typename T,
typename Config>
65 template <
bool b,
typename T =
void>
68 template <
bool b,
typename T =
void>
81 template <
typename T,
typename =
void>
94 &T::operator()>> : std::true_type {};
101 template <
typename T, const_flavor C>
106 template <
typename T>
108 using type = std::add_const_t<T>;
111 template <
typename T, const_flavor C>
117 template <
typename Container>
120 template <
typename ARG, std::
size_t SZ>
122 template <
typename... ARGS>
124 template <
typename... ARGS>
127 template <
typename T>
133 template <
typename T>
136 template <
typename T,
typename KeysToIgnore>
139 template <
typename T>
145 template <
typename T>
148 template <
typename T>
151 template <
typename T>
157 template <
typename T>
160 template <
typename T>
163 template <
typename T>
166 template <
typename T, std::
size_t SZ>
170 template <
typename... TYPES>
174 template <
typename T,
typename... ARGS>
178 template <
typename T>
185 template <
typename T>
195 template <
typename T>
202 template <
typename T>
206 template <
typename T,
typename KeysToIgnore>
209 template <
typename T>
213 template <
typename T>
216 template <
typename T>
220 template <
typename T, std::
size_t SZ>
223 template <
typename T, std::
size_t SZ>
227 template <
typename... TYPES>
230 template <
typename... TYPES>
234 template <
typename T,
typename... ARGS>
237 template <
typename T,
typename... ARGS>
238 struct is_fhicl_type<fhicl::OptionalTupleAs<T(ARGS...)>> : std::true_type {};
241 template <
typename T,
typename Config>
244 template <
typename T,
typename Config>
245 struct is_fhicl_type<fhicl::OptionalTableAs<T, Config>> : std::true_type {};
247 template <
typename T>
253 template <
typename T>
258 template <
typename T, std::
size_t SZ>
263 template <
typename T,
typename KeysToIgnore>
268 template <
typename... ARGS>
273 template <
typename T,
typename Config>
278 template <
typename T,
typename... ARGS>
283 template <
typename T>
288 template <
typename T, std::
size_t SZ>
293 template <
typename T>
298 template <
typename... ARGS>
303 template <
typename T,
typename Config>
308 template <
typename T,
typename... ARGS>
314 template <
typename T>
320 template <
typename T>
325 template <
typename T>
330 template <
typename T, std::
size_t SZ>
335 template <
typename S,
typename KeysToIgnore>
340 template <
typename... ARGS>
345 template <
typename T,
typename Config>
350 template <
typename T,
typename... ARGS>
356 template <
typename... ARGS>
std::is_unsigned< T > is_uint
std::is_arithmetic< T > is_numeric
std::array< tt::return_type< T >, N > value_type
constexpr bool is_fhicl_type_v
typename fhicl::Tuple< ARGS... >::value_type value_type
enable_if_same_t< FT, decltype(f), R > enable_if_function_exists_t
typename fhicl::TupleAs< T(ARGS...)>::value_type value_type
std::integral_constant< bool, Value > bool_constant
typename fhicl::Sequence< T, SZ >::value_type value_type
typename fhicl::TableAs< T, Config >::value_type value_type
constexpr bool is_sequence_type_v
typename fhicl_type_impl< T >::type fhicl_type
typename fhicl::Table< S, KeysToIgnore >::value_type value_type
typename fhicl::Atom< T >::value_type value_type
constexpr bool is_table_fragment_v
auto array(Array const &a)
Returns a manipulator which will print the specified array.
std::enable_if<!b, T > disable_if
constexpr bool is_optional_parameter_v
typename disable_if< b, T >::type disable_if_t
typename maybe_const< T, C >::type maybe_const_t
constexpr bool is_table_v
typename return_type_impl< ARGS... >::value_type return_type
constexpr bool is_delegated_parameter_v