28 #ifndef INCLUDED_If_h_GUID_F34A2E21_4328_478B_E11B_2E8FBD606BF8 29 #define INCLUDED_If_h_GUID_F34A2E21_4328_478B_E11B_2E8FBD606BF8 39 #include <type_traits> 45 template <
typename...>
struct if_impl {};
47 template <
typename If>
48 struct if_impl<If> : std::enable_if<If::type::value> {};
50 template <
typename If,
typename Then>
51 struct if_impl<If, Then> : std::enable_if<If::type::value, Then> {};
53 template <
typename If,
typename Then,
typename Else>
54 struct if_impl<If, Then, Else>
55 : std::conditional<If::type::value, Then, Else> {};
61 template <
typename... Args>
using if_ =
t_<detail::if_impl<Args...>>;
64 template <
bool If,
typename... Args>
68 #endif // INCLUDED_If_h_GUID_F34A2E21_4328_478B_E11B_2E8FBD606BF8 The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
Definition: newuoa.h:1888
t_< detail::if_impl< Args... >> if_
Select one type or another depending on a compile-time Boolean integral constant type.
Definition: If.h:61
typename T::type t_
A convenience alias template to extract the nested type within the supplied T.
Definition: T.h:52
t_< detail::if_impl< bool_< If >, Args... >> if_c
Select one type or another depending on a compile-time Boolean value.
Definition: If.h:65