forked from Alepha/Alepha
Added Sequence and optional detection.
This is part of the larger `Meta` library. Need to implement tuple-for-each and more.
This commit is contained in:
34
Meta/is_optional.h
Normal file
34
Meta/is_optional.h
Normal file
@ -0,0 +1,34 @@
|
||||
static_assert( __cplusplus > 201700, "C++17 Required" );
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <Alepha/Alepha.hpp>
|
||||
|
||||
#include <type_traits>
|
||||
#include <optional>
|
||||
|
||||
namespace Alepha::Hydrogen::Meta
|
||||
{
|
||||
inline namespace exports { inline namespace type_traits {} }
|
||||
|
||||
namespace detail::type_traits::is_optional
|
||||
{
|
||||
inline namespace exports
|
||||
{
|
||||
template< typename T >
|
||||
struct is_optional : std::false_type {};
|
||||
|
||||
template< typename T, typename ... Args >
|
||||
struct is_optional< std::optional< T, Args... > > : std::true_type {};
|
||||
|
||||
template< typename T >
|
||||
constexpr bool is_optional_v= is_optional< T >::value;
|
||||
}
|
||||
}
|
||||
|
||||
namespace exports::type_traits
|
||||
{
|
||||
using namespace detail::type_traits::is_optional::exports;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user