CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::traits Namespace Reference

Classes

struct  has_difference_type
 A C++17 type trait equivalent to the C++20 has-member-difference-type concept. More...
 
struct  has_difference_type< T, std::void_t< typename T::value_type > >
 
struct  has_element_type
 A C++17 type trait equivalent to the C++20 has-member-element-type concept. More...
 
struct  has_element_type< T, std::void_t< typename T::element_type > >
 
struct  has_iterator_traits_difference_type
 A C++17 type trait equivalent to the C++20 "has-iterator-traits-difference-type" concept. More...
 
struct  has_iterator_traits_difference_type< T, std::void_t< typename std::iterator_traits< T >::difference_type > >
 
struct  has_iterator_traits_iterator_category
 A C++17 type trait equivalent to the C++20 "has-iterator-traits-iterator-category" concept. More...
 
struct  has_iterator_traits_iterator_category< T, std::void_t< typename std::iterator_traits< T >::iterator_category > >
 
struct  has_iterator_traits_iterator_concept
 A C++17 type trait equivalent to the C++20 "has-iterator-traits-iterator-concept" concept. More...
 
struct  has_iterator_traits_iterator_concept< T, std::void_t< typename std::iterator_traits< T >::iterator_concept > >
 
struct  has_iterator_traits_value_type
 A C++17 type trait equivalent to the C++20 "has-iterator-traits-value-type" concept. More...
 
struct  has_iterator_traits_value_type< T, std::void_t< typename std::iterator_traits< T >::value_type > >
 
struct  has_value_type
 A C++17 type trait equivalent to the C++20 has-member-value-type concept. More...
 
struct  has_value_type< T, std::void_t< typename T::value_type > >
 
struct  is_assignable_from
 A C++17 type trait equivalent to the C++20 assignable_from concept. More...
 
struct  is_assignable_from< LHS, RHS, std::enable_if_t< std::is_lvalue_reference_v< LHS > &&std::is_same_v< decltype(std::declval< LHS >()=std::declval< RHS && >()), LHS > > >
 
struct  is_constructible_from
 A C++17 type trait equivalent to the C++20 constructible_from concept. More...
 
struct  is_convertible_to
 A C++17 type trait equivalent to the C++20 convertible_to concept. More...
 
struct  is_convertible_to< From, To, std::void_t< std::enable_if_t< std::is_convertible_v< From, To > >, decltype(static_cast< To >(std::declval< From >())) > >
 
struct  is_copyable
 A C++17 type trait equivalent to the C++20 copyable concept. More...
 
struct  is_copyable< T, std::enable_if_t< std::is_copy_constructible_v< T > &&is_movable_v< T > &&is_assignable_from_v< T &, T & > &&is_assignable_from_v< T &, std::add_const_t< T > & > &&is_assignable_from_v< T &, std::add_const_t< T > > > >
 
struct  is_decrementable
 A C++17 type trait equivalent to the C++20 decrementable concept. More...
 
struct  is_decrementable< I, std::void_t< decltype(std::declval< I >() --) > >
 
struct  is_default_executor
 A type trait that checks if a type is an DefaultExecutor. More...
 
struct  is_default_initializable
 A C++17 type trait equivalent to the C++20 default_initializable concept. More...
 
struct  is_default_initializable< T, std::void_t< std::enable_if_t< is_constructible_from_v< T > >, decltype(T{}) > >
 
struct  is_derived_from
 A C++17 type trait equivalent to the C++20 derived_from concept. More...
 
struct  is_equality_comparable
 A C++17 type trait equivalent to the C++20 equality_comparable concept. More...
 
struct  is_equality_comparable< T, std::void_t< decltype(std::declval< const std::remove_reference_t< T > & >()==std::declval< const std::remove_reference_t< T > & >()), decltype(std::declval< const std::remove_reference_t< T > & >() !=std::declval< const std::remove_reference_t< T > & >()) > >
 
struct  is_equality_comparable_with
 A C++17 type trait equivalent to the C++20 equality_comparable_with concept. More...
 
struct  is_equality_comparable_with< T, U, std::enable_if_t< is_equality_comparable_v< T > &&is_equality_comparable_v< U > &&is_weakly_equality_comparable_v< T, U > > >
 
struct  is_execution_context
 A type trait that checks if a type is a ExecutionContext. More...
 
struct  is_executor_or_execution_context
 A type trait that checks if a type is an executor or an ExecutionContext. More...
 
struct  is_forward_iterator
 A C++17 type trait equivalent to the C++20 forward_iterator concept. More...
 
struct  is_forward_iterator< I, std::enable_if_t< is_input_iterator_v< I > &&is_derived_from_v< iter_concept_t< I >, std::forward_iterator_tag > &&is_incrementable_v< I > &&is_sentinel_for_v< I, I > > >
 
struct  is_incrementable
 A C++17 type trait equivalent to the C++20 incrementable concept. More...
 
struct  is_incrementable< I, std::void_t< decltype(std::declval< I >()++) > >
 
struct  is_indirectly_binary_invocable
 A C++17 type trait equivalent to the C++20 indirectly_binary_invocable concept. More...
 
struct  is_indirectly_binary_invocable< F, I1, I2, std::enable_if_t< is_indirectly_readable_v< I1 > &&is_indirectly_readable_v< I2 > &&std::is_copy_constructible_v< F > &&std::is_invocable_v< F &, iter_value_t< I1 > &, iter_value_t< I2 > & > > >
 
struct  is_indirectly_readable
 A C++17 type trait equivalent to the C++20 indirectly_readable concept. More...
 
struct  is_indirectly_readable< const void * >
 
struct  is_indirectly_readable< T, std::void_t< iter_value_t< T >, iter_reference_t< T >, iter_rvalue_reference_t< T >, decltype(*std::declval< T >())> >
 
struct  is_indirectly_readable< void * >
 
struct  is_indirectly_unary_invocable
 A C++17 type trait equivalent to the C++20 indirectly_unary_invocable concept. More...
 
struct  is_indirectly_unary_invocable< F, I, std::enable_if_t< is_indirectly_readable_v< I > &&std::is_copy_constructible_v< F > &&std::is_invocable_v< F &, iter_value_t< I > & > > >
 
struct  is_inline_executor
 A type trait that checks if a type is an InlineExecutor. More...
 
struct  is_input_iterator
 A C++17 type trait equivalent to the C++20 input_iterator concept. More...
 
struct  is_input_or_output_iterator
 A C++17 type trait equivalent to the C++20 input_or_output_iterator concept. More...
 
struct  is_input_or_output_iterator< T, std::void_t< decltype(*std::declval< T >())> >
 
struct  is_input_range
 A C++17 type trait equivalent to the C++20 input_range concept. More...
 
struct  is_input_range< T, std::void_t< iterator_t< T > > >
 
struct  is_movable
 A C++17 type trait equivalent to the C++20 movable concept. More...
 
struct  is_movable< T, std::enable_if_t< std::is_object_v< T > &&is_move_constructible_v< T > &&is_assignable_from_v< T &, T > &&is_swappable_v< T > > >
 
struct  is_move_constructible
 A C++17 type trait equivalent to the C++20 move_constructible concept. More...
 
struct  is_move_constructible< T, std::enable_if_t< is_constructible_from_v< T, T > &&is_convertible_to_v< T, T > > >
 
struct  is_partially_ordered_with
 A C++17 type trait equivalent to the C++20 partially_ordered_with concept. More...
 
struct  is_partially_ordered_with< T, U, std::void_t< decltype(std::declval< const std::remove_reference_t< T > & >()< std::declval< const std::remove_reference_t< U > & >()), decltype(std::declval< const std::remove_reference_t< T > & >() > std::declval< const std::remove_reference_t< U > & >()), decltype(std::declval< const std::remove_reference_t< T > & >()<=std::declval< const std::remove_reference_t< U > & >()), decltype(std::declval< const std::remove_reference_t< T > & >() >=std::declval< const std::remove_reference_t< U > & >()), decltype(std::declval< const std::remove_reference_t< U > & >()< std::declval< const std::remove_reference_t< T > & >()), decltype(std::declval< const std::remove_reference_t< U > & >() > std::declval< const std::remove_reference_t< T > & >()), decltype(std::declval< const std::remove_reference_t< U > & >()<=std::declval< const std::remove_reference_t< T > & >()), decltype(std::declval< const std::remove_reference_t< U > & >() >=std::declval< const std::remove_reference_t< T > & >()) > >
 
struct  is_range
 A C++17 type trait equivalent to the C++20 range concept. More...
 
struct  is_range< T, std::void_t< decltype(*std::begin(std::declval< T >())), decltype(*std::end(std::declval< T >())) > >
 
struct  is_range_partitioner
 Determine if P is a valid partitioner for the range R. More...
 
struct  is_range_partitioner< T, R >
 
struct  is_regular
 A C++17 type trait equivalent to the C++20 regular concept. More...
 
struct  is_regular< T, std::enable_if_t< is_semiregular_v< T > &&is_equality_comparable_v< T > > >
 
struct  is_semiregular
 A C++17 type trait equivalent to the C++20 semiregular concept. More...
 
struct  is_semiregular< T, std::enable_if_t< is_copyable_v< T > &&is_default_initializable_v< T > > >
 
struct  is_sentinel_for
 A C++17 type trait equivalent to the C++20 sentinel_for concept. More...
 
struct  is_sentinel_for< S, I, std::enable_if_t< std::is_same_v< S, I >||(is_semiregular_v< S > &&is_input_or_output_iterator_v< I >) > >
 
struct  is_subtractable
 A C++17 type trait equivalent to the C++20 subtractable concept. More...
 
struct  is_subtractable< T, std::void_t< decltype(std::declval< const std::remove_reference_t< T > & >() - std::declval< const std::remove_reference_t< T > & >()) > >
 
struct  is_swappable
 A C++17 type trait equivalent to the C++20 swappable concept. More...
 
struct  is_swappable< T, std::void_t< decltype(std::swap(std::declval< T & >(), std::declval< T & >())) > >
 
struct  is_thread_executor
 A type trait that checks if a type is an ThreadExecutor. More...
 
struct  is_totally_ordered
 A C++17 type trait equivalent to the C++20 totally_ordered concept. More...
 
struct  is_totally_ordered< T, std::void_t< decltype(std::declval< const std::remove_reference_t< T > & >()< std::declval< const std::remove_reference_t< T > & >()), decltype(std::declval< const std::remove_reference_t< T > & >() > std::declval< const std::remove_reference_t< T > & >()), decltype(std::declval< const std::remove_reference_t< T > & >()<=std::declval< const std::remove_reference_t< T > & >()), decltype(std::declval< const std::remove_reference_t< T > & >() >=std::declval< const std::remove_reference_t< T > & >()) > >
 
struct  is_totally_ordered_with
 A C++17 type trait equivalent to the C++20 totally_ordered_with concept. More...
 
struct  is_totally_ordered_with< T, U, std::enable_if_t< is_totally_ordered_v< T > &&is_totally_ordered_v< U > &&is_equality_comparable_with_v< T, U > &&is_partially_ordered_with_v< T, U > > >
 
struct  is_weakly_decrementable
 A C++17 type trait equivalent to the C++20 weakly_decrementable concept. More...
 
struct  is_weakly_decrementable< I, std::void_t< decltype(std::declval< I >() --), decltype(--std::declval< I >()), iter_difference_t< I > > >
 
struct  is_weakly_equality_comparable
 A C++17 type trait equivalent to the C++20 weakly_equality_comparable concept. More...
 
struct  is_weakly_equality_comparable< T, U, std::void_t< decltype(std::declval< const std::remove_reference_t< T > & >()==std::declval< const std::remove_reference_t< U > & >()), decltype(std::declval< const std::remove_reference_t< T > & >() !=std::declval< const std::remove_reference_t< U > & >()), decltype(std::declval< const std::remove_reference_t< U > & >()==std::declval< const std::remove_reference_t< T > & >()), decltype(std::declval< const std::remove_reference_t< U > & >() !=std::declval< const std::remove_reference_t< T > & >()) > >
 
struct  is_weakly_incrementable
 A C++17 type trait equivalent to the C++20 weakly_incrementable concept. More...
 
struct  is_weakly_incrementable< I, std::void_t< decltype(std::declval< I >()++), decltype(++std::declval< I >()), iter_difference_t< I > > >
 
struct  iter_concept
 A C++17 type trait equivalent to the C++20 iter_concept concept. More...
 
struct  iter_concept< T, std::enable_if_t< !has_iterator_traits_iterator_concept_v< remove_cvref_t< T > > &&!has_iterator_traits_iterator_category_v< remove_cvref_t< T > > > >
 
struct  iter_concept< T, std::enable_if_t< !has_iterator_traits_iterator_concept_v< remove_cvref_t< T > > &&has_iterator_traits_iterator_category_v< remove_cvref_t< T > > > >
 
struct  iter_concept< T, std::enable_if_t< has_iterator_traits_iterator_concept_v< remove_cvref_t< T > > > >
 
struct  iter_difference
 A C++17 type trait equivalent to the C++20 iter_difference concept. More...
 
struct  iter_difference< T, std::enable_if_t< !has_iterator_traits_difference_type_v< remove_cvref_t< T > > &&!std::is_pointer_v< T > &&!std::is_const_v< T > &&!has_iterator_traits_difference_type_v< remove_cvref_t< T > > &&is_subtractable_v< remove_cvref_t< T > > > >
 
struct  iter_difference< T, std::enable_if_t< !has_iterator_traits_difference_type_v< remove_cvref_t< T > > &&!std::is_pointer_v< T > &&!std::is_const_v< T > &&has_iterator_traits_difference_type_v< remove_cvref_t< T > > > >
 
struct  iter_difference< T, std::enable_if_t< !has_iterator_traits_difference_type_v< remove_cvref_t< T > > &&!std::is_pointer_v< T > &&std::is_const_v< T > > >
 
struct  iter_difference< T, std::enable_if_t< !has_iterator_traits_difference_type_v< remove_cvref_t< T > > &&std::is_pointer_v< T > > >
 
struct  iter_difference< T, std::enable_if_t< has_iterator_traits_difference_type_v< remove_cvref_t< T > > > >
 
struct  iter_reference
 A C++17 type trait equivalent to the C++20 iter_reference concept. More...
 
struct  iter_reference< T, std::void_t< iter_value_t< T > > >
 
struct  iter_rvalue_reference
 A C++17 type trait equivalent to the C++20 iter_rvalue_reference concept. More...
 
struct  iter_rvalue_reference< T, std::void_t< iter_value_t< T > > >
 
struct  iter_value
 A C++17 type trait equivalent to the C++20 iter_value concept. More...
 
struct  iter_value< T, std::enable_if_t< has_iterator_traits_value_type_v< remove_cvref_t< T > > > >
 
struct  iter_value< T, std::enable_if_t<!has_iterator_traits_value_type_v< remove_cvref_t< T > > &&!std::is_pointer_v< T > &&!std::is_array_v< T > &&!std::is_const_v< T > &&!has_value_type_v< T > &&has_element_type_v< T > > >
 
struct  iter_value< T, std::enable_if_t<!has_iterator_traits_value_type_v< remove_cvref_t< T > > &&!std::is_pointer_v< T > &&!std::is_array_v< T > &&!std::is_const_v< T > &&has_value_type_v< T > > >
 
struct  iter_value< T, std::enable_if_t<!has_iterator_traits_value_type_v< remove_cvref_t< T > > &&!std::is_pointer_v< T > &&!std::is_array_v< T > &&std::is_const_v< T > > >
 
struct  iter_value< T, std::enable_if_t<!has_iterator_traits_value_type_v< remove_cvref_t< T > > &&!std::is_pointer_v< T > &&std::is_array_v< T > > >
 
struct  iter_value< T, std::enable_if_t<!has_iterator_traits_value_type_v< remove_cvref_t< T > > &&std::is_pointer_v< T > > >
 
struct  iterator
 A C++17 type trait equivalent to the C++20 iterator_t concept. More...
 
struct  iterator< T, std::void_t< decltype(begin(std::declval< T & >()))> >
 
struct  range_value
 A C++17 type trait equivalent to the C++20 range_value concept. More...
 
struct  range_value< R, std::enable_if_t< is_range_v< R > > >
 
struct  remove_cvref
 A C++17 type trait equivalent to the C++20 remove_cvref concept. More...
 

Concepts

concept  partitioner
 
concept  range_partitioner
 
concept  executor
 
concept  execution_context
 
concept  executor_or_execution_context
 
concept  inline_executor
 
concept  thread_executor
 
concept  default_executor
 
concept  assignable_from
 
concept  constructible_from
 
concept  convertible_to
 
concept  copyable
 
concept  decrementable
 
concept  default_initializable
 
concept  derived_from
 
concept  equality_comparable
 
concept  forward_iterator
 
concept  incrementable
 
concept  indirectly_binary_invocable
 
concept  indirectly_readable
 
concept  indirectly_unary_invocable
 
concept  input_iterator
 
concept  input_or_output_iterator
 
concept  input_range
 
concept  movable
 
concept  move_constructible
 
concept  range
 
concept  regular
 
concept  semiregular
 
concept  sentinel_for
 
concept  subtractable
 
concept  swappable
 
concept  totally_ordered
 
concept  totally_ordered_with
 
concept  weakly_decrementable
 
concept  weakly_equality_comparable
 
concept  weakly_incrementable
 

Typedefs

template<class T , class I , class S >
using is_partitioner = std::conjunction< std::conditional_t< traits::is_input_iterator_v< I >, std::true_type, std::false_type >, std::conditional_t< traits::is_input_iterator_v< S >, std::true_type, std::false_type >, std::is_invocable< T, I, S > >
 Determine if P is a valid partitioner for the iterator range [I,S].
 
template<class T >
using iter_concept_t = typename iter_concept< T >::type
 A C++17 type trait equivalent to the C++20 iter_concept concept.
 
template<class T >
using iter_difference_t = typename iter_difference< T >::type
 A C++17 type trait equivalent to the C++20 iter_difference concept.
 
template<class T >
using iter_reference_t = typename iter_reference< T >::type
 A C++17 type trait equivalent to the C++20 iter_reference concept.
 
template<class T >
using iter_rvalue_reference_t = typename iter_rvalue_reference< T >::type
 A C++17 type trait equivalent to the C++20 iter_rvalue_reference concept.
 
template<class T >
using iter_value_t = typename iter_value< T >::type
 A C++17 type trait equivalent to the C++20 iter_value concept.
 
template<class T >
using iterator_t = typename iterator< T >::type
 A C++17 type trait equivalent to the C++20 iterator_t concept.
 
template<class R >
using range_value_t = typename range_value< R >::type
 A C++17 type trait equivalent to the C++20 range_value concept.
 
template<class T >
using remove_cvref_t = typename remove_cvref< T >::type
 A C++17 type trait equivalent to the C++20 remove_cvref concept.
 

Variables

template<class T , class I , class S >
constexpr bool is_partitioner_v = is_partitioner<T, I, S>::value
 Determine if P is a valid partitioner for the iterator range [I,S].
 
template<class T , class R >
constexpr bool is_range_partitioner_v = is_range_partitioner<T, R>::value
 Determine if P is a valid partitioner for the range R.
 
template<typename T >
constexpr bool is_executor_v = is_executor<T>::value
 
template<typename T >
constexpr bool is_execution_context_v = is_execution_context<T>::value
 A type trait that checks if a type is a ExecutionContext.
 
template<typename T >
constexpr bool is_executor_or_execution_context_v = is_executor_or_execution_context<T>::value
 A type trait that checks if a type is an executor or an ExecutionContext.
 
template<typename T >
constexpr bool is_inline_executor_v = is_inline_executor<T>::value
 A type trait that checks if a type is an InlineExecutor.
 
template<typename T >
constexpr bool is_thread_executor_v = is_thread_executor<T>::value
 A type trait that checks if a type is an ThreadExecutor.
 
template<typename T >
constexpr bool is_default_executor_v = is_default_executor<T>::value
 A type trait that checks if a type is an DefaultExecutor.
 
template<class T >
bool constexpr has_difference_type_v = has_difference_type<T>::value
 A C++17 type trait equivalent to the C++20 has-member-difference-type concept.
 
template<class T >
bool constexpr has_element_type_v = has_element_type<T>::value
 A C++17 type trait equivalent to the C++20 has-member-element-type concept.
 
template<class T >
bool constexpr has_iterator_traits_difference_type_v = has_iterator_traits_difference_type<T>::value
 A C++17 type trait equivalent to the C++20 "has-iterator-traits-difference-type" concept.
 
template<class T >
bool constexpr has_iterator_traits_iterator_category_v = has_iterator_traits_iterator_category<T>::value
 A C++17 type trait equivalent to the C++20 "has-iterator-traits-iterator-category" concept.
 
template<class T >
bool constexpr has_iterator_traits_iterator_concept_v = has_iterator_traits_iterator_concept<T>::value
 A C++17 type trait equivalent to the C++20 "has-iterator-traits-iterator-concept" concept.
 
template<class T >
bool constexpr has_iterator_traits_value_type_v = has_iterator_traits_value_type<T>::value
 A C++17 type trait equivalent to the C++20 "has-iterator-traits-value-type" concept.
 
template<class T >
bool constexpr has_value_type_v = has_value_type<T>::value
 A C++17 type trait equivalent to the C++20 has-member-value-type concept.
 
template<class LHS , class RHS >
bool constexpr is_assignable_from_v = is_assignable_from<LHS, RHS>::value
 
template<class T , class... Args>
bool constexpr is_constructible_from_v = is_constructible_from<T>::value
 A C++17 type trait equivalent to the C++20 constructible_from concept.
 
template<class From , class To >
bool constexpr is_convertible_to_v = is_convertible_to<From, To>::value
 A C++17 type trait equivalent to the C++20 convertible_to concept.
 
template<class T >
bool constexpr is_copyable_v = is_copyable<T>::value
 A C++17 type trait equivalent to the C++20 copyable concept.
 
template<class I >
bool constexpr is_decrementable_v = is_decrementable<I>::value
 A C++17 type trait equivalent to the C++20 decrementable concept.
 
template<class T >
bool constexpr is_default_initializable_v = is_default_initializable<T>::value
 A C++17 type trait equivalent to the C++20 default_initializable concept.
 
template<class Derived , class Base >
bool constexpr is_derived_from_v = is_derived_from<Derived, Base>::value
 A C++17 type trait equivalent to the C++20 derived_from concept.
 
template<class T >
bool constexpr is_equality_comparable_v = is_equality_comparable<T>::value
 A C++17 type trait equivalent to the C++20 equality_comparable concept.
 
template<class T , class U >
bool constexpr is_equality_comparable_with_v = is_equality_comparable_with<T, U>::value
 A C++17 type trait equivalent to the C++20 equality_comparable_with concept.
 
template<class T , class U >
bool constexpr equality_comparable_with = is_equality_comparable_with_v<T, U>
 A C++17 type trait equivalent to the C++20 equality_comparable_with concept.
 
template<class I >
bool constexpr is_forward_iterator_v = is_forward_iterator<I>::value
 A C++17 type trait equivalent to the C++20 forward_iterator concept.
 
template<class I >
bool constexpr is_incrementable_v = is_incrementable<I>::value
 A C++17 type trait equivalent to the C++20 incrementable concept.
 
template<class F , class I1 , class I2 >
bool constexpr is_indirectly_binary_invocable_v = is_indirectly_binary_invocable<F, I1, I2>::value
 A C++17 type trait equivalent to the C++20 indirectly_binary_invocable concept.
 
template<class T >
bool constexpr is_indirectly_readable_v = is_indirectly_readable<T>::value
 A C++17 type trait equivalent to the C++20 indirectly_readable concept.
 
template<class F , class I >
bool constexpr is_indirectly_unary_invocable_v = is_indirectly_unary_invocable<F, I>::value
 A C++17 type trait equivalent to the C++20 indirectly_unary_invocable concept.
 
template<class T >
bool constexpr is_input_iterator_v = is_input_iterator<T>::value
 A C++17 type trait equivalent to the C++20 input_iterator concept.
 
template<class T >
bool constexpr is_input_or_output_iterator_v = is_input_or_output_iterator<T>::value
 A C++17 type trait equivalent to the C++20 input_or_output_iterator concept.
 
template<class T >
bool constexpr is_input_range_v = is_input_range<T>::value
 A C++17 type trait equivalent to the C++20 input_range concept.
 
template<class T >
bool constexpr is_movable_v = is_movable<T>::value
 A C++17 type trait equivalent to the C++20 movable concept.
 
template<class T >
bool constexpr is_move_constructible_v = is_move_constructible<T>::value
 A C++17 type trait equivalent to the C++20 move_constructible concept.
 
template<class T , class U >
bool constexpr is_partially_ordered_with_v = is_partially_ordered_with<T, U>::value
 A C++17 type trait equivalent to the C++20 partially_ordered_with concept.
 
template<class T , class U >
bool constexpr partially_ordered_with = is_partially_ordered_with_v<T, U>
 A C++17 type trait equivalent to the C++20 partially_ordered_with concept.
 
template<class T >
bool constexpr is_range_v = is_range<T>::value
 A C++17 type trait equivalent to the C++20 range concept.
 
template<class T >
bool constexpr is_regular_v = is_regular<T>::value
 A C++17 type trait equivalent to the C++20 regular concept.
 
template<class T >
bool constexpr is_semiregular_v = is_semiregular<T>::value
 A C++17 type trait equivalent to the C++20 semiregular concept.
 
template<class S , class I >
bool constexpr is_sentinel_for_v = is_sentinel_for<S, I>::value
 A C++17 type trait equivalent to the C++20 sentinel_for concept.
 
template<class T >
bool constexpr is_subtractable_v = is_subtractable<T>::value
 A C++17 type trait equivalent to the C++20 subtractable concept.
 
template<class T >
bool constexpr is_swappable_v = is_swappable<T>::value
 A C++17 type trait equivalent to the C++20 swappable concept.
 
template<class T >
bool constexpr is_totally_ordered_v = is_totally_ordered<T>::value
 A C++17 type trait equivalent to the C++20 totally_ordered concept.
 
template<class T , class U >
bool constexpr is_totally_ordered_with_v = is_totally_ordered_with<T, U>::value
 A C++17 type trait equivalent to the C++20 totally_ordered_with concept.
 
template<class I >
bool constexpr is_weakly_decrementable_v = is_weakly_decrementable<I>::value
 A C++17 type trait equivalent to the C++20 weakly_decrementable concept.
 
template<class T , class U >
bool constexpr is_weakly_equality_comparable_v = is_weakly_equality_comparable<T, U>::value
 A C++17 type trait equivalent to the C++20 weakly_equality_comparable concept.
 
template<class I >
bool constexpr is_weakly_incrementable_v = is_weakly_incrementable<I>::value
 A C++17 type trait equivalent to the C++20 weakly_incrementable concept.
 

Typedef Documentation

◆ is_partitioner

template<class T , class I , class S >
using CeresEngine::traits::is_partitioner = typedef std::conjunction<std::conditional_t<traits::is_input_iterator_v<I>, std::true_type, std::false_type>, std::conditional_t<traits::is_input_iterator_v<S>, std::true_type, std::false_type>, std::is_invocable<T, I, S> >

Determine if P is a valid partitioner for the iterator range [I,S].

◆ iter_concept_t

A C++17 type trait equivalent to the C++20 iter_concept concept.

◆ iter_difference_t

A C++17 type trait equivalent to the C++20 iter_difference concept.

◆ iter_reference_t

A C++17 type trait equivalent to the C++20 iter_reference concept.

◆ iter_rvalue_reference_t

A C++17 type trait equivalent to the C++20 iter_rvalue_reference concept.

◆ iter_value_t

A C++17 type trait equivalent to the C++20 iter_value concept.

◆ iterator_t

A C++17 type trait equivalent to the C++20 iterator_t concept.

◆ range_value_t

A C++17 type trait equivalent to the C++20 range_value concept.

◆ remove_cvref_t

A C++17 type trait equivalent to the C++20 remove_cvref concept.

Variable Documentation

◆ equality_comparable_with

template<class T , class U >
bool constexpr CeresEngine::traits::equality_comparable_with = is_equality_comparable_with_v<T, U>
constexpr

A C++17 type trait equivalent to the C++20 equality_comparable_with concept.

◆ has_difference_type_v

template<class T >
bool constexpr CeresEngine::traits::has_difference_type_v = has_difference_type<T>::value
constexpr

A C++17 type trait equivalent to the C++20 has-member-difference-type concept.

◆ has_element_type_v

template<class T >
bool constexpr CeresEngine::traits::has_element_type_v = has_element_type<T>::value
constexpr

A C++17 type trait equivalent to the C++20 has-member-element-type concept.

◆ has_iterator_traits_difference_type_v

template<class T >
bool constexpr CeresEngine::traits::has_iterator_traits_difference_type_v = has_iterator_traits_difference_type<T>::value
constexpr

A C++17 type trait equivalent to the C++20 "has-iterator-traits-difference-type" concept.

◆ has_iterator_traits_iterator_category_v

template<class T >
bool constexpr CeresEngine::traits::has_iterator_traits_iterator_category_v = has_iterator_traits_iterator_category<T>::value
constexpr

A C++17 type trait equivalent to the C++20 "has-iterator-traits-iterator-category" concept.

◆ has_iterator_traits_iterator_concept_v

template<class T >
bool constexpr CeresEngine::traits::has_iterator_traits_iterator_concept_v = has_iterator_traits_iterator_concept<T>::value
constexpr

A C++17 type trait equivalent to the C++20 "has-iterator-traits-iterator-concept" concept.

◆ has_iterator_traits_value_type_v

template<class T >
bool constexpr CeresEngine::traits::has_iterator_traits_value_type_v = has_iterator_traits_value_type<T>::value
constexpr

A C++17 type trait equivalent to the C++20 "has-iterator-traits-value-type" concept.

◆ has_value_type_v

template<class T >
bool constexpr CeresEngine::traits::has_value_type_v = has_value_type<T>::value
constexpr

A C++17 type trait equivalent to the C++20 has-member-value-type concept.

◆ is_assignable_from_v

template<class LHS , class RHS >
bool constexpr CeresEngine::traits::is_assignable_from_v = is_assignable_from<LHS, RHS>::value
constexpr

◆ is_constructible_from_v

template<class T , class... Args>
bool constexpr CeresEngine::traits::is_constructible_from_v = is_constructible_from<T>::value
constexpr

A C++17 type trait equivalent to the C++20 constructible_from concept.

◆ is_convertible_to_v

template<class From , class To >
bool constexpr CeresEngine::traits::is_convertible_to_v = is_convertible_to<From, To>::value
constexpr

A C++17 type trait equivalent to the C++20 convertible_to concept.

◆ is_copyable_v

template<class T >
bool constexpr CeresEngine::traits::is_copyable_v = is_copyable<T>::value
constexpr

A C++17 type trait equivalent to the C++20 copyable concept.

◆ is_decrementable_v

template<class I >
bool constexpr CeresEngine::traits::is_decrementable_v = is_decrementable<I>::value
constexpr

A C++17 type trait equivalent to the C++20 decrementable concept.

◆ is_default_executor_v

template<typename T >
constexpr bool CeresEngine::traits::is_default_executor_v = is_default_executor<T>::value
constexprprivate

A type trait that checks if a type is an DefaultExecutor.

◆ is_default_initializable_v

template<class T >
bool constexpr CeresEngine::traits::is_default_initializable_v = is_default_initializable<T>::value
constexpr

A C++17 type trait equivalent to the C++20 default_initializable concept.

◆ is_derived_from_v

template<class Derived , class Base >
bool constexpr CeresEngine::traits::is_derived_from_v = is_derived_from<Derived, Base>::value
constexpr

A C++17 type trait equivalent to the C++20 derived_from concept.

◆ is_equality_comparable_v

template<class T >
bool constexpr CeresEngine::traits::is_equality_comparable_v = is_equality_comparable<T>::value
constexpr

A C++17 type trait equivalent to the C++20 equality_comparable concept.

◆ is_equality_comparable_with_v

template<class T , class U >
bool constexpr CeresEngine::traits::is_equality_comparable_with_v = is_equality_comparable_with<T, U>::value
constexpr

A C++17 type trait equivalent to the C++20 equality_comparable_with concept.

◆ is_execution_context_v

template<typename T >
constexpr bool CeresEngine::traits::is_execution_context_v = is_execution_context<T>::value
constexpr

A type trait that checks if a type is a ExecutionContext.

◆ is_executor_or_execution_context_v

template<typename T >
constexpr bool CeresEngine::traits::is_executor_or_execution_context_v = is_executor_or_execution_context<T>::value
constexpr

A type trait that checks if a type is an executor or an ExecutionContext.

◆ is_executor_v

template<typename T >
constexpr bool CeresEngine::traits::is_executor_v = is_executor<T>::value
constexpr

◆ is_forward_iterator_v

template<class I >
bool constexpr CeresEngine::traits::is_forward_iterator_v = is_forward_iterator<I>::value
constexpr

A C++17 type trait equivalent to the C++20 forward_iterator concept.

◆ is_incrementable_v

template<class I >
bool constexpr CeresEngine::traits::is_incrementable_v = is_incrementable<I>::value
constexpr

A C++17 type trait equivalent to the C++20 incrementable concept.

◆ is_indirectly_binary_invocable_v

template<class F , class I1 , class I2 >
bool constexpr CeresEngine::traits::is_indirectly_binary_invocable_v = is_indirectly_binary_invocable<F, I1, I2>::value
constexpr

A C++17 type trait equivalent to the C++20 indirectly_binary_invocable concept.

◆ is_indirectly_readable_v

template<class T >
bool constexpr CeresEngine::traits::is_indirectly_readable_v = is_indirectly_readable<T>::value
constexpr

A C++17 type trait equivalent to the C++20 indirectly_readable concept.

◆ is_indirectly_unary_invocable_v

template<class F , class I >
bool constexpr CeresEngine::traits::is_indirectly_unary_invocable_v = is_indirectly_unary_invocable<F, I>::value
constexpr

A C++17 type trait equivalent to the C++20 indirectly_unary_invocable concept.

◆ is_inline_executor_v

template<typename T >
constexpr bool CeresEngine::traits::is_inline_executor_v = is_inline_executor<T>::value
constexprprivate

A type trait that checks if a type is an InlineExecutor.

◆ is_input_iterator_v

template<class T >
bool constexpr CeresEngine::traits::is_input_iterator_v = is_input_iterator<T>::value
constexpr

A C++17 type trait equivalent to the C++20 input_iterator concept.

◆ is_input_or_output_iterator_v

template<class T >
bool constexpr CeresEngine::traits::is_input_or_output_iterator_v = is_input_or_output_iterator<T>::value
constexpr

A C++17 type trait equivalent to the C++20 input_or_output_iterator concept.

◆ is_input_range_v

template<class T >
bool constexpr CeresEngine::traits::is_input_range_v = is_input_range<T>::value
constexpr

A C++17 type trait equivalent to the C++20 input_range concept.

◆ is_movable_v

template<class T >
bool constexpr CeresEngine::traits::is_movable_v = is_movable<T>::value
constexpr

A C++17 type trait equivalent to the C++20 movable concept.

◆ is_move_constructible_v

template<class T >
bool constexpr CeresEngine::traits::is_move_constructible_v = is_move_constructible<T>::value
constexpr

A C++17 type trait equivalent to the C++20 move_constructible concept.

◆ is_partially_ordered_with_v

template<class T , class U >
bool constexpr CeresEngine::traits::is_partially_ordered_with_v = is_partially_ordered_with<T, U>::value
constexpr

A C++17 type trait equivalent to the C++20 partially_ordered_with concept.

◆ is_partitioner_v

template<class T , class I , class S >
constexpr bool CeresEngine::traits::is_partitioner_v = is_partitioner<T, I, S>::value
constexpr

Determine if P is a valid partitioner for the iterator range [I,S].

◆ is_range_partitioner_v

template<class T , class R >
constexpr bool CeresEngine::traits::is_range_partitioner_v = is_range_partitioner<T, R>::value
constexpr

Determine if P is a valid partitioner for the range R.

◆ is_range_v

template<class T >
bool constexpr CeresEngine::traits::is_range_v = is_range<T>::value
constexpr

A C++17 type trait equivalent to the C++20 range concept.

◆ is_regular_v

template<class T >
bool constexpr CeresEngine::traits::is_regular_v = is_regular<T>::value
constexpr

A C++17 type trait equivalent to the C++20 regular concept.

◆ is_semiregular_v

template<class T >
bool constexpr CeresEngine::traits::is_semiregular_v = is_semiregular<T>::value
constexpr

A C++17 type trait equivalent to the C++20 semiregular concept.

◆ is_sentinel_for_v

template<class S , class I >
bool constexpr CeresEngine::traits::is_sentinel_for_v = is_sentinel_for<S, I>::value
constexpr

A C++17 type trait equivalent to the C++20 sentinel_for concept.

◆ is_subtractable_v

template<class T >
bool constexpr CeresEngine::traits::is_subtractable_v = is_subtractable<T>::value
constexpr

A C++17 type trait equivalent to the C++20 subtractable concept.

◆ is_swappable_v

template<class T >
bool constexpr CeresEngine::traits::is_swappable_v = is_swappable<T>::value
constexpr

A C++17 type trait equivalent to the C++20 swappable concept.

◆ is_thread_executor_v

template<typename T >
constexpr bool CeresEngine::traits::is_thread_executor_v = is_thread_executor<T>::value
constexprprivate

A type trait that checks if a type is an ThreadExecutor.

◆ is_totally_ordered_v

template<class T >
bool constexpr CeresEngine::traits::is_totally_ordered_v = is_totally_ordered<T>::value
constexpr

A C++17 type trait equivalent to the C++20 totally_ordered concept.

◆ is_totally_ordered_with_v

template<class T , class U >
bool constexpr CeresEngine::traits::is_totally_ordered_with_v = is_totally_ordered_with<T, U>::value
constexpr

A C++17 type trait equivalent to the C++20 totally_ordered_with concept.

◆ is_weakly_decrementable_v

template<class I >
bool constexpr CeresEngine::traits::is_weakly_decrementable_v = is_weakly_decrementable<I>::value
constexpr

A C++17 type trait equivalent to the C++20 weakly_decrementable concept.

◆ is_weakly_equality_comparable_v

template<class T , class U >
bool constexpr CeresEngine::traits::is_weakly_equality_comparable_v = is_weakly_equality_comparable<T, U>::value
constexpr

A C++17 type trait equivalent to the C++20 weakly_equality_comparable concept.

◆ is_weakly_incrementable_v

template<class I >
bool constexpr CeresEngine::traits::is_weakly_incrementable_v = is_weakly_incrementable<I>::value
constexpr

A C++17 type trait equivalent to the C++20 weakly_incrementable concept.

◆ partially_ordered_with

template<class T , class U >
bool constexpr CeresEngine::traits::partially_ordered_with = is_partially_ordered_with_v<T, U>
constexpr

A C++17 type trait equivalent to the C++20 partially_ordered_with concept.