Added optional_base trait.
This commit is contained in:
parent
232a01eb28
commit
05bc3d5147
@ -165,6 +165,23 @@ struct detect_or<TDefault, TOper, TArgs...>
|
||||
template<typename TDefault, template<typename...> typename TOper, typename... TArgs>
|
||||
using detect_or_t = detect_or<TDefault, TOper, TArgs...>::type;
|
||||
|
||||
struct empty_type {};
|
||||
|
||||
template<typename T, bool enable>
|
||||
struct optional_base
|
||||
{
|
||||
using type = T;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
struct optional_base<T, false>
|
||||
{
|
||||
using type = empty_type;
|
||||
};
|
||||
|
||||
template<typename T, bool enable>
|
||||
using optional_base_t = optional_base<T, enable>::type;
|
||||
|
||||
//
|
||||
// public functions
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user