18template <
class T,
class R =
void>
19struct EnableIfHasInterfaceOptions {
using Type = R; };
21template <
class T,
class Enable =
void>
22struct HasInterfaceOptions
24 static const bool Value =
false;
28struct HasInterfaceOptions<T, typename EnableIfHasInterfaceOptions<typename T::InterfaceOptions>::Type>
30 static const bool Value =
true;
34constexpr bool hasInterfaceOptions()
36 return HasInterfaceOptions<T>::Value;
39template <
class T,
class R =
void>
40struct EnableIfHasImplOptions {
using Type = R; };
42template <
class T,
class Enable =
void>
45 static const bool Value =
false;
49struct HasImplOptions<T, typename EnableIfHasImplOptions<typename T::ImplOptions>::Type>
51 static const bool Value =
true;
55constexpr bool hasImplOptions()
57 return HasImplOptions<T>::Value;
60template <
class T,
class R =
void>
61struct EnableIfHasElementType {
using Type = R; };
63template <
class T,
class Enable =
void>
66 static const bool Value =
false;
70struct HasElementType<T, typename EnableIfHasElementType<typename T::element_type>::Type>
72 static const bool Value =
true;
76constexpr bool hasElementType()
78 return HasElementType<T>::Value;
Main namespace for all classes / functions of COMMS library.