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>
|
template<typename TDefault, template<typename...> typename TOper, typename... TArgs>
|
||||||
using detect_or_t = detect_or<TDefault, TOper, TArgs...>::type;
|
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
|
// public functions
|
||||||
//
|
//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user