19template <
class T,
class R =
void>
20struct EnableIfHasInterfaceOptions {
using Type = R; };
22template <
class T,
class Enable =
void>
23struct HasInterfaceOptions
25 static const bool Value =
false;
29struct HasInterfaceOptions<T, typename EnableIfHasInterfaceOptions<typename T::InterfaceOptions>::Type>
31 static const bool Value =
true;
35constexpr bool hasInterfaceOptions()
37 return HasInterfaceOptions<T>::Value;
40template <
class T,
class R =
void>
41struct EnableIfHasImplOptions {
using Type = R; };
43template <
class T,
class Enable =
void>
46 static const bool Value =
false;
50struct HasImplOptions<T, typename EnableIfHasImplOptions<typename T::ImplOptions>::Type>
52 static const bool Value =
true;
56constexpr bool hasImplOptions()
58 return HasImplOptions<T>::Value;
61template <
class T,
class R =
void>
62struct EnableIfHasElementType {
using Type = R; };
64template <
class T,
class Enable =
void>
67 static const bool Value =
false;
71struct HasElementType<T, typename EnableIfHasElementType<typename T::element_type>::Type>
73 static const bool Value =
true;
77constexpr bool hasElementType()
79 return HasElementType<T>::Value;
Main namespace for all classes / functions of COMMS library.