1
0
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:
2021-07-01 22:28:24 -04:00
parent 7ceef7e1b1
commit ec07dcc83a
9 changed files with 355 additions and 0 deletions

36
Meta/is_sequence.h Normal file
View File

@ -0,0 +1,36 @@
static_assert( __cplusplus > 201700, "C++17 Required" );
#pragma once
#include <Alepha/Alepha.h>
#include <type_traits>
#include <Alepha/Meta/is_list.h>
#include <Alepha/Meta/is_forward_list.h>
#include <Alepha/Meta/is_vector.h>
#include <Alepha/Meta/is_deque.h>
#include <Alepha/Meta/is_string.h>
namespace Alepha::Hydrogen::Meta
{
inline namespace exports { inline namespace type_traits {} }
namespace detail::type_traits::is_sequence
{
inline namespace exports
{
template< typename T >
constexpr bool is_sequence_v= is_list_v< T > or is_forward_list_v< T > or is_deque_v< T > or is_string_v< T > or is_vector_v< T >;
template< typename T >
struct is_sequence : std::bool_constant< is_sequence_v< T > > {};
}
}
namespace exports::type_traits
{
using namespace detail::type_traits::is_sequence::exports;
}
}