Added optional_base trait.

This commit is contained in:
Patrick 2025-06-23 00:17:30 +02:00
parent 232a01eb28
commit 05bc3d5147

View File

@ -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
// //