Concept-checking classes and utilities.
|
using | ranges::v3::concepts::_1 = std::integral_constant< int, 0 > |
|
using | ranges::v3::concepts::_2 = std::integral_constant< int, 1 > |
|
using | ranges::v3::concepts::_3 = std::integral_constant< int, 2 > |
|
using | ranges::v3::concepts::_4 = std::integral_constant< int, 3 > |
|
using | ranges::v3::concepts::_5 = std::integral_constant< int, 4 > |
|
using | ranges::v3::concepts::_6 = std::integral_constant< int, 5 > |
|
using | ranges::v3::concepts::_7 = std::integral_constant< int, 6 > |
|
using | ranges::v3::concepts::_8 = std::integral_constant< int, 7 > |
|
using | ranges::v3::concepts::_9 = std::integral_constant< int, 8 > |
|
template<typename T , typename U > |
using | ranges::v3::Assignable = concepts::models< concepts::Assignable, T, U > |
|
template<typename I1 , typename I2 , typename C = equal_to, typename P1 = ident, typename P2 = ident> |
using | ranges::v3::AsymmetricallyComparable = meta::strict_and< InputIterator< I1 >, InputIterator< I2 >, IndirectPredicate< C, projected< I1, P1 >, projected< I2, P2 > >> |
|
using | ranges::v3::concepts::refines< Concepts >::base_concepts_t = meta::list< Concepts... > |
|
template<typename I > |
using | ranges::v3::BidirectionalIterator = concepts::models< concepts::BidirectionalIterator, I > |
|
template<typename T > |
using | ranges::v3::BidirectionalRange = concepts::models< concepts::BidirectionalRange, T > |
|
template<typename T > |
using | ranges::v3::BidirectionalView = concepts::models< concepts::BidirectionalView, T > |
|
template<typename I , typename V2 , typename C = ordered_less, typename P = ident> |
using | ranges::v3::BinarySearchable = meta::strict_and< ForwardIterator< I >, IndirectRelation< C, projected< I, P >, V2 const * > > |
|
template<typename T > |
using | ranges::v3::bounded_range_concept = concepts::most_refined< meta::list< concepts::BoundedRange, concepts::Range >, T > |
|
template<typename T > |
using | ranges::v3::bounded_range_concept_t = meta::_t< bounded_range_concept< T > > |
|
template<typename T > |
using | ranges::v3::bounded_view_concept = concepts::most_refined< meta::list< concepts::BoundedView, concepts::View >, T > |
|
template<typename T > |
using | ranges::v3::bounded_view_concept_t = meta::_t< bounded_view_concept< T > > |
|
template<typename T > |
using | ranges::v3::BoundedRange = concepts::models< concepts::BoundedRange, T > |
|
template<typename T > |
using | ranges::v3::BoundedView = concepts::models< concepts::BoundedView, T > |
|
template<typename T , typename U , typename... Rest> |
using | ranges::v3::Common = concepts::models< concepts::Common, T, U, Rest... > |
|
template<typename T , typename U , typename... Rest> |
using | ranges::v3::CommonReference = concepts::models< concepts::CommonReference, T, U, Rest... > |
|
template<typename I1 , typename I2 , typename C = equal_to, typename P1 = ident, typename P2 = ident> |
using | ranges::v3::Comparable = meta::strict_and< AsymmetricallyComparable< I1, I2, C, P1, P2 >, IndirectRelation< C, projected< I1, P1 >, projected< I2, P2 > >> |
|
template<typename T , typename ... Args> |
using | ranges::v3::Constructible = concepts::models< concepts::Constructible, T, Args... > |
|
template<typename T > |
using | ranges::v3::Container = concepts::models< concepts::Container, T > |
|
template<typename I > |
using | ranges::v3::ContiguousIterator = concepts::models< concepts::ContiguousIterator, I > |
|
template<typename Rng > |
using | ranges::v3::ContiguousRange = concepts::models< concepts::ContiguousRange, Rng > |
|
template<typename T > |
using | ranges::v3::ContiguousView = concepts::models< concepts::ContiguousView, T > |
|
template<typename T , typename U > |
using | ranges::v3::ConvertibleTo = concepts::models< concepts::ConvertibleTo, T, U > |
|
template<typename T > |
using | ranges::v3::Copyable = concepts::models< concepts::Copyable, T > |
|
template<typename T > |
using | ranges::v3::CopyConstructible = concepts::models< concepts::CopyConstructible, T > |
|
template<typename T > |
using | ranges::v3::DefaultConstructible = concepts::models< concepts::DefaultConstructible, T > |
|
template<typename T , typename U > |
using | ranges::v3::DerivedFrom = concepts::models< concepts::DerivedFrom, T, U > |
|
template<typename T > |
using | ranges::v3::Destructible = concepts::models< concepts::Destructible, T > |
|
template<typename T , typename U = T> |
using | ranges::v3::EqualityComparable = concepts::models< concepts::EqualityComparable, T, U > |
|
template<typename Rng , typename... Rest> |
using | ranges::v3::ErasableRange = concepts::models< concepts::ErasableRange, Rng, Rest... > |
|
template<typename I , typename T > |
using | ranges::v3::ExclusivelyWritable_ = meta::invoke< detail::exclusively_writable_< I >, T > |
|
template<typename T , typename U > |
using | ranges::v3::ExplicitlyConvertibleTo = concepts::models< concepts::ExplicitlyConvertibleTo, T, U > |
|
template<typename I > |
using | ranges::v3::ForwardIterator = concepts::models< concepts::ForwardIterator, I > |
|
template<typename T > |
using | ranges::v3::ForwardRange = concepts::models< concepts::ForwardRange, T > |
|
template<typename T > |
using | ranges::v3::ForwardView = concepts::models< concepts::ForwardView, T > |
|
template<typename T , typename U > |
using | ranges::v3::ImplicitlyConvertibleTo = concepts::models< concepts::ImplicitlyConvertibleTo, T, U > |
|
template<typename T > |
using | ranges::v3::Incrementable = concepts::models< concepts::Incrementable, T > |
|
template<typename C , typename ... Is> |
using | ranges::v3::IndirectInvocable = meta::and_< detail::common_result_indirect_invocable_< C, Is... >, CopyConstructible< C > > |
|
template<typename I , typename O > |
using | ranges::v3::IndirectlyCopyable = concepts::models< concepts::IndirectlyCopyable, I, O > |
|
template<typename I , typename O > |
using | ranges::v3::IndirectlyCopyableStorable = concepts::models< concepts::IndirectlyCopyableStorable, I, O > |
|
template<typename I , typename O > |
using | ranges::v3::IndirectlyMovable = concepts::models< concepts::IndirectlyMovable, I, O > |
|
template<typename I , typename O > |
using | ranges::v3::IndirectlyMovableStorable = concepts::models< concepts::IndirectlyMovableStorable, I, O > |
|
template<typename I1 , typename I2 > |
using | ranges::v3::IndirectlySwappable = concepts::models< concepts::IndirectlySwappable, I1, I2 > |
|
template<typename C , typename ... Is> |
using | ranges::v3::IndirectPredicate = meta::and_< detail::indirect_invocable_< Predicate, C, Is... >, CopyConstructible< C > > |
|
template<typename C , typename ... Is> |
using | ranges::v3::IndirectRegularInvocable = IndirectInvocable< C, Is... > |
|
template<typename C , typename I0 , typename I1 = I0> |
using | ranges::v3::IndirectRelation = meta::and_< detail::indirect_invocable_< Relation, C, I0, I1 >, CopyConstructible< C > > |
|
template<typename I > |
using | ranges::v3::InputIterator = concepts::models< concepts::InputIterator, I > |
|
template<typename T > |
using | ranges::v3::InputRange = concepts::models< concepts::InputRange, T > |
|
template<typename T > |
using | ranges::v3::InputView = concepts::models< concepts::InputView, T > |
|
template<typename Rng , typename... Rest> |
using | ranges::InsertableRange = concepts::models< concepts::InsertableRange, Rng, Rest... > |
|
template<typename T > |
using | ranges::v3::Integral = concepts::models< concepts::Integral, T > |
|
template<typename Fun , typename... Args> |
using | ranges::v3::Invocable = concepts::models< concepts::Invocable, Fun, Args... > |
|
template<typename T > |
using | ranges::v3::is_view = View< T > |
|
template<typename I , typename C = ordered_less, typename P = ident> |
using | ranges::v3::IsHeapable = meta::strict_and< RandomAccessIterator< I >, IndirectRelation< C, projected< I, P > >> |
|
template<typename I , typename C , typename P = ident> |
using | ranges::v3::IsPartitionedable = meta::strict_and< InputIterator< I >, IndirectPredicate< C, projected< I, P > >> |
|
template<typename I1 , typename I2 , typename C = equal_to, typename P1 = ident, typename P2 = ident> |
using | ranges::v3::IsPermutationable = meta::strict_and< ForwardIterator< I1 >, ForwardIterator< I2 >, Comparable< I1, I2, C, P1, P2 > > |
|
template<typename I > |
using | ranges::v3::Iterator = concepts::models< concepts::Iterator, I > |
|
template<typename T > |
using | ranges::v3::iterator_concept = concepts::most_refined< meta::list< concepts::ContiguousIterator, concepts::RandomAccessIterator, concepts::BidirectionalIterator, concepts::ForwardIterator, concepts::InputIterator >, T > |
|
template<typename T > |
using | ranges::v3::iterator_concept_t = meta::_t< iterator_concept< T > > |
|
template<typename I , typename S > |
using | ranges::v3::IteratorRange = Sentinel< S, I > |
|
template<typename T > |
using | ranges::v3::LvalueContainerLike = concepts::models< concepts::LvalueContainerLike, T > |
|
template<typename I0 , typename I1 , typename Out , typename C = ordered_less, typename P0 = ident, typename P1 = ident> |
using | ranges::v3::Mergeable = meta::strict_and< InputIterator< I0 >, InputIterator< I1 >, WeaklyIncrementable< Out >, IndirectRelation< C, projected< I0, P0 >, projected< I1, P1 > >, IndirectlyCopyable< I0, Out >, IndirectlyCopyable< I1, Out > > |
|
template<typename I1 , typename I2 , typename C = equal_to, typename P1 = ident, typename P2 = ident> |
using | ranges::v3::Mismatchable = meta::strict_and< InputIterator< I1 >, InputIterator< I2 >, IndirectPredicate< C, projected< I1, P1 >, projected< I2, P2 > >> |
|
template<typename Concepts , typename... Ts> |
using | ranges::v3::concepts::most_refined_t = meta::_t< most_refined< Concepts, Ts... > > |
|
template<typename T > |
using | ranges::v3::Movable = concepts::models< concepts::Movable, T > |
|
template<typename T > |
using | ranges::v3::MoveConstructible = concepts::models< concepts::MoveConstructible, T > |
|
template<typename C , typename ... Is> |
using | ranges::v3::MoveIndirectInvocable = meta::and_< detail::common_result_indirect_invocable_< C, Is... >, MoveConstructible< C > > |
|
template<typename I0 , typename I1 , typename Out , typename C = ordered_less, typename P0 = ident, typename P1 = ident> |
using | ranges::v3::MoveMergeable = meta::strict_and< InputIterator< I0 >, InputIterator< I1 >, WeaklyIncrementable< Out >, IndirectRelation< C, projected< I0, P0 >, projected< I1, P1 > >, IndirectlyMovable< I0, Out >, IndirectlyMovable< I1, Out > > |
|
template<typename Out , typename T > |
using | ranges::v3::OutputIterator = concepts::models< concepts::OutputIterator, Out, T > |
|
template<typename T , typename V > |
using | ranges::v3::OutputRange = concepts::models< concepts::OutputRange, T, V > |
|
template<typename T , typename V > |
using | ranges::v3::OutputView = concepts::models< concepts::OutputView, T, V > |
|
template<typename I , typename O , typename C = ordered_less, typename PI = ident, typename PO = ident> |
using | ranges::v3::PartialSortCopyConcept = meta::strict_and< InputIterator< I >, RandomAccessIterator< O >, IndirectlyCopyable< I, O >, IndirectRelation< C, projected< I, PI >, projected< O, PO > >, Sortable< O, C, PO > > |
|
template<typename I , typename C , typename P = ident> |
using | ranges::v3::Partitionable = meta::strict_and< ForwardIterator< I >, Permutable< I >, IndirectPredicate< C, projected< I, P > >> |
|
template<typename I , typename O0 , typename O1 , typename C , typename P = ident> |
using | ranges::v3::PartitionCopyable = meta::strict_and< InputIterator< I >, WeaklyIncrementable< O0 >, WeaklyIncrementable< O1 >, IndirectlyCopyable< I, O0 >, IndirectlyCopyable< I, O1 >, IndirectPredicate< C, projected< I, P > >> |
|
template<typename I , typename V = concepts::Readable::value_t<I>> |
using | ranges::v3::Permutable = meta::strict_and< ForwardIterator< I >, IndirectlySwappable< I, I >, IndirectlyMovableStorable< I, I > > |
|
template<typename Fun , typename... Args> |
using | ranges::v3::Predicate = concepts::models< concepts::Predicate, Fun, Args... > |
|
template<typename I , typename Proj > |
using | ranges::v3::projected = meta::if_c< IndirectRegularInvocable< Proj, I >::value, detail::projected_< I, Proj > > |
|
template<typename I > |
using | ranges::v3::RandomAccessIterator = concepts::models< concepts::RandomAccessIterator, I > |
|
template<typename T > |
using | ranges::v3::RandomAccessRange = concepts::models< concepts::RandomAccessRange, T > |
|
template<typename C > |
using | ranges::v3::RandomAccessReservable = meta::strict_and< Reservable< C >, RandomAccessRange< C > > |
|
template<typename T > |
using | ranges::v3::RandomAccessView = concepts::models< concepts::RandomAccessView, T > |
|
template<typename T > |
using | ranges::v3::Range = concepts::models< concepts::Range, T > |
|
template<typename T > |
using | ranges::v3::range_concept = concepts::most_refined< meta::list< concepts::ContiguousRange, concepts::RandomAccessRange, concepts::BidirectionalRange, concepts::ForwardRange, concepts::InputRange >, T > |
|
template<typename T > |
using | ranges::v3::range_concept_t = meta::_t< range_concept< T > > |
|
template<typename T > |
using | ranges::v3::Readable = concepts::models< concepts::Readable, T > |
|
template<typename T , typename U , typename... Rest> |
using | ranges::v3::concepts::CommonReference::reference_t = common_reference_t< T, U, Rest... > |
|
template<typename T > |
using | ranges::v3::Regular = concepts::models< concepts::Regular, T > |
|
template<typename Fun , typename... Args> |
using | ranges::v3::RegularInvocable = concepts::models< concepts::RegularInvocable, Fun, Args... > |
|
template<typename Fun , typename T , typename U = T> |
using | ranges::v3::Relation = concepts::models< concepts::Relation, Fun, T, U > |
|
template<typename I , typename T , typename P = ident> |
using | ranges::v3::Removable = meta::strict_and< ForwardIterator< I >, IndirectRelation< equal_to, projected< I, P >, T const * >, Permutable< I > > |
|
template<typename I , typename C , typename P = ident> |
using | ranges::v3::RemovableIf = meta::strict_and< ForwardIterator< I >, IndirectPredicate< C, projected< I, P > >, Permutable< I > > |
|
template<typename I , typename O , typename T , typename P = ident> |
using | ranges::v3::RemoveCopyable = meta::strict_and< InputIterator< I >, WeaklyIncrementable< O >, IndirectRelation< equal_to, projected< I, P >, T const * >, IndirectlyCopyable< I, O > > |
|
template<typename I , typename O , typename C , typename P = ident> |
using | ranges::v3::RemoveCopyableIf = meta::strict_and< InputIterator< I >, WeaklyIncrementable< O >, IndirectPredicate< C, projected< I, P > >, IndirectlyCopyable< I, O > > |
|
template<typename I , typename T0 , typename T1 , typename P = ident> |
using | ranges::v3::Replaceable = meta::strict_and< InputIterator< I >, IndirectRelation< equal_to, projected< I, P >, T0 const * >, Writable< I, T1 const & > > |
|
template<typename I , typename O , typename T0 , typename T1 , typename P = ident> |
using | ranges::v3::ReplaceCopyable = meta::strict_and< InputIterator< I >, OutputIterator< O, T1 const & >, IndirectlyCopyable< I, O >, IndirectRelation< equal_to, projected< I, P >, T0 const * > > |
|
template<typename I , typename O , typename C , typename T , typename P = ident> |
using | ranges::v3::ReplaceCopyIfable = meta::strict_and< InputIterator< I >, OutputIterator< O, T const & >, IndirectlyCopyable< I, O >, IndirectPredicate< C, projected< I, P > >> |
|
template<typename I , typename C , typename T , typename P = ident> |
using | ranges::v3::ReplaceIfable = meta::strict_and< InputIterator< I >, IndirectPredicate< C, projected< I, P > >, Writable< I, T const & > > |
|
template<typename C > |
using | ranges::v3::Reservable = concepts::models< concepts::Reservable, C > |
|
template<typename C , typename I > |
using | ranges::v3::ReserveAndAssignable = concepts::models< concepts::ReserveAndAssignable, C, I > |
|
template<typename I , typename O > |
using | ranges::v3::ReverseCopyable = meta::strict_and< BidirectionalIterator< I >, WeaklyIncrementable< O >, IndirectlyCopyable< I, O > > |
|
template<typename ... Ts> |
using | ranges::v3::Same = concepts::Same::same_t< Ts... > |
|
template<typename ... Ts> |
using | ranges::v3::concepts::Same::same_t = meta::_t< same< Ts... > > |
|
template<typename I1 , typename I2 , typename C = equal_to, typename P1 = ident, typename P2 = ident> |
using | ranges::v3::Searchable = meta::strict_and< ForwardIterator< I1 >, ForwardIterator< I2 >, Comparable< I1, I2, C, P1, P2 > > |
|
template<typename T > |
using | ranges::v3::SemiContainer = concepts::models< concepts::SemiContainer, T > |
|
template<typename T > |
using | ranges::v3::SemiRegular = concepts::models< concepts::SemiRegular, T > |
|
template<typename S , typename I > |
using | ranges::v3::Sentinel = concepts::models< concepts::Sentinel, S, I > |
|
template<typename T > |
using | ranges::v3::SignedIntegral = concepts::models< concepts::SignedIntegral, T > |
|
template<typename I > |
using | ranges::v3::SinglePass = meta::strict_and< Iterator< I >, meta::not_< ForwardIterator< I > >> |
|
template<typename T > |
using | ranges::v3::sized_range_concept = concepts::most_refined< meta::list< concepts::SizedRange, concepts::Range >, T > |
|
template<typename T > |
using | ranges::v3::sized_range_concept_t = meta::_t< sized_range_concept< T > > |
|
template<typename S , typename I > |
using | ranges::v3::sized_sentinel_concept = concepts::most_refined< meta::list< concepts::SizedSentinel, concepts::Sentinel >, S, I > |
|
template<typename S , typename I > |
using | ranges::v3::sized_sentinel_concept_t = meta::_t< sized_sentinel_concept< S, I > > |
|
template<typename T > |
using | ranges::v3::sized_view_concept = concepts::most_refined< meta::list< concepts::SizedView, concepts::View >, T > |
|
template<typename T > |
using | ranges::v3::sized_view_concept_t = meta::_t< sized_view_concept< T > > |
|
template<typename I , typename S > |
using | ranges::v3::SizedIteratorRange = SizedSentinel< S, I > |
|
template<typename T > |
using | ranges::v3::SizedRange = concepts::models< concepts::SizedRange, T > |
|
template<typename S , typename I > |
using | ranges::v3::SizedSentinel = concepts::models< concepts::SizedSentinel, S, I > |
|
template<typename T > |
using | ranges::v3::SizedView = concepts::models< concepts::SizedView, T > |
|
template<typename I , typename C = ordered_less, typename P = ident> |
using | ranges::v3::Sortable = meta::strict_and< ForwardIterator< I >, IndirectRelation< C, projected< I, P >, projected< I, P > >, Permutable< I > > |
|
template<typename I , typename C , typename P = ident> |
using | ranges::v3::StablePartitionable = meta::strict_and< ForwardIterator< I >, Permutable< I >, IndirectPredicate< C, projected< I, P > >> |
|
template<typename T , typename U = T> |
using | ranges::v3::Swappable = concepts::models< concepts::Swappable, T, U > |
|
template<typename T , typename U = T> |
using | ranges::v3::TotallyOrdered = concepts::models< concepts::TotallyOrdered, T, U > |
|
template<typename I , typename O , typename F , typename P = ident> |
using | ranges::v3::Transformable1 = meta::strict_and< InputIterator< I >, WeaklyIncrementable< O >, CopyConstructible< F >, Writable< O, indirect_result_of_t< F &(projected< I, P >)> >> |
|
template<typename I0 , typename I1 , typename O , typename F , typename P0 = ident, typename P1 = ident> |
using | ranges::v3::Transformable2 = meta::strict_and< InputIterator< I0 >, InputIterator< I1 >, WeaklyIncrementable< O >, CopyConstructible< F >, Writable< O, indirect_result_of_t< F &(projected< I0, P0 >, projected< I1, P1 >)> >> |
|
template<typename Gen > |
using | ranges::v3::UniformRandomNumberGenerator = concepts::models< concepts::UniformRandomNumberGenerator, Gen > |
|
template<typename I , typename O , typename C = equal_to, typename P = ident> |
using | ranges::v3::UniqueCopyable = meta::strict_and< InputIterator< I >, IndirectRelation< C, projected< I, P > >, WeaklyIncrementable< O >, IndirectlyCopyable< I, O >, meta::strict_or< ForwardIterator< I >, ForwardIterator< O >, IndirectlyCopyableStorable< I, O > >> |
|
template<typename T > |
using | ranges::v3::UnsignedIntegral = concepts::models< concepts::UnsignedIntegral, T > |
|
template<typename T , typename U , typename... Rest> |
using | ranges::v3::concepts::Common::value_t = common_type_t< T, U, Rest... > |
|
template<typename T > |
using | ranges::v3::View = concepts::models< concepts::View, T > |
|
template<typename T > |
using | ranges::v3::view_concept = concepts::most_refined< meta::list< concepts::View, concepts::Range >, T > |
|
template<typename T > |
using | ranges::v3::view_concept_t = meta::_t< view_concept< T > > |
|
template<typename T , typename U > |
using | ranges::v3::WeaklyEqualityComparable = concepts::models< concepts::WeaklyEqualityComparable, T, U > |
|
template<typename T > |
using | ranges::v3::WeaklyIncrementable = concepts::models< concepts::WeaklyIncrementable, T > |
|
template<typename T , typename U = T> |
using | ranges::v3::WeaklyOrdered = concepts::models< concepts::WeaklyOrdered, T, U > |
|
template<typename Out , typename T > |
using | ranges::v3::Writable = concepts::models< concepts::Writable, Out, T > |
|
|
| ranges::v3::concepts::Assignable::concepts::has_type ((T &&) t=(U &&) u))) |
|
| ranges::v3::concepts::DerivedFrom::concepts::is_true (std::is_convertible< meta::_t< std::remove_cv< T >> *, meta::_t< std::remove_cv< U >> *>{}))) |
|
| ranges::v3::concepts::Common::concepts::model_of () |
|
| ranges::v3::concepts::Assignable::concepts::model_of () |
|
| ranges::v3::concepts::EqualityComparable::concepts::model_of ())) |
|
| ranges::v3::concepts::Movable::concepts::model_of () |
|
template<typename T , typename U > |
auto | ranges::v3::concepts::convertible_to (U &&u) -> decltype(concepts::returns_< int >(static_cast< T >((U &&) u))) |
|
template<typename T , typename U > |
auto | ranges::v3::concepts::has_type (U &&) -> meta::if_< std::is_same< T, U >, int > |
|
template<typename Concept , typename ... Ts> |
auto | ranges::v3::concepts::model_of (Ts &&...) -> meta::if_c< concepts::models< Concept, Ts... >::value, int > |
|
template<typename Concept , typename ... Ts> |
auto | ranges::v3::concepts::model_of () -> meta::if_c< concepts::models< Concept, Ts... >::value, int > |
|
template<typename... Ts> |
void | ranges::v3::concepts::refines< Concepts >::requires_ () |
|
template<typename ... Ts> |
auto | ranges::v3::concepts::Same::requires_ () -> decltype(concepts::valid_expr(concepts::is_true(same_t< Ts... > |
|
template<typename T , typename U > |
auto | ranges::v3::concepts::DerivedFrom::requires_ () -> decltype(concepts::valid_expr(concepts::is_true(std::is_base_of< U, T > |
|
template<typename T , typename U > |
auto | ranges::v3::concepts::CommonReference::requires_ () -> decltype(concepts::valid_expr(concepts::model_of< Same, reference_t< T, U >, reference_t< U, T >>(), concepts::model_of< ConvertibleTo, T, reference_t< T, U >>(), concepts::model_of< ConvertibleTo, U, reference_t< T, U >>())) |
|
template<typename T , typename U , typename... Rest, typename CommonReference_ = CommonReference> |
auto | ranges::v3::concepts::CommonReference::requires_ () -> decltype(concepts::valid_expr(concepts::model_of< CommonReference_, T, U >(), concepts::model_of< CommonReference_, reference_t< T, U >, Rest... >())) |
|
template<typename T , typename U > |
auto | ranges::v3::concepts::Common::requires_ () -> decltype(concepts::valid_expr(concepts::is_true(std::is_same< uncvref_t< T >, uncvref_t< U >> |
|
template<typename T , typename U , typename... Rest, typename Common_ = Common> |
auto | ranges::v3::concepts::Common::requires_ () -> decltype(concepts::valid_expr(concepts::model_of< Common_, T, U >(), concepts::model_of< Common_, value_t< T, U >, Rest... >())) |
|
template<typename T > |
auto | ranges::v3::concepts::Integral::requires_ () -> decltype(concepts::valid_expr(concepts::is_true(std::is_integral< T > |
|
template<typename T > |
auto | ranges::v3::concepts::SignedIntegral::requires_ () -> decltype(concepts::valid_expr(concepts::is_true(std::is_signed< T > |
|
template<typename T > |
auto | ranges::v3::concepts::UnsignedIntegral::requires_ () -> decltype(concepts::valid_expr(concepts::is_false(std::is_signed< T > |
|
template<typename T , typename U > |
auto | ranges::v3::concepts::Assignable::requires_ (T &&t, U &&u) -> decltype(concepts::valid_expr(concepts::is_true(std::is_lvalue_reference< T > |
|
template<typename T > |
auto | ranges::v3::concepts::Swappable::requires_ (T &&t) -> decltype(concepts::valid_expr(((void) ranges::swap((T &&) t,(T &&) t), 42))) |
|
template<typename T , typename U > |
auto | ranges::v3::concepts::Swappable::requires_ (T &&t, U &&u) -> decltype(concepts::valid_expr(concepts::model_of< Swappable, T >(), concepts::model_of< Swappable, U >(), concepts::model_of< CommonReference, detail::as_cref_t< T >, detail::as_cref_t< U >>(),((void) ranges::swap((T &&) t,(U &&) u), 42),((void) ranges::swap((U &&) u,(T &&) t), 42))) |
|
template<typename T , typename U > |
auto | ranges::v3::concepts::WeaklyEqualityComparable::requires_ (detail::as_cref_t< T > t, detail::as_cref_t< U > u) -> decltype(concepts::valid_expr(concepts::convertible_to< bool >(t==u), concepts::convertible_to< bool >(t !=u), concepts::convertible_to< bool >(u==t), concepts::convertible_to< bool >(u !=t))) |
|
template<typename T > |
auto | ranges::v3::concepts::EqualityComparable::requires_ (detail::as_cref_t< T > t) -> decltype(concepts::valid_expr(concepts::convertible_to< bool >(t==t), concepts::convertible_to< bool >(t !=t))) |
|
template<typename T , typename U > |
auto | ranges::v3::concepts::EqualityComparable::requires_ () -> decltype(concepts::valid_expr(concepts::is_true(std::is_same< T, U > |
|
template<typename T , typename U , typename C = common_reference_t<detail::as_cref_t<T>, detail::as_cref_t<U>>> |
auto | ranges::v3::concepts::EqualityComparable::requires_ () -> decltype(concepts::valid_expr(concepts::is_false(std::is_same< T, U > |
|
template<typename T > |
auto | ranges::v3::concepts::WeaklyOrdered::requires_ (T &&t) -> decltype(concepts::valid_expr(concepts::convertible_to< bool >(t< t), concepts::convertible_to< bool >(t > t), concepts::convertible_to< bool >(t<=t), concepts::convertible_to< bool >(t >=t))) |
|
template<typename T , typename U , typename C = common_reference_t<detail::as_cref_t<T>, detail::as_cref_t<U>>> |
auto | ranges::v3::concepts::WeaklyOrdered::requires_ (detail::as_cref_t< T > t, detail::as_cref_t< U > u) -> decltype(concepts::valid_expr(concepts::model_of< WeaklyOrdered, T >(), concepts::model_of< WeaklyOrdered, U >(), concepts::model_of< CommonReference, detail::as_cref_t< T >, detail::as_cref_t< U >>(), concepts::model_of< WeaklyOrdered, C >(), concepts::convertible_to< bool >(t< u), concepts::convertible_to< bool >(u< t), concepts::convertible_to< bool >(t > u), concepts::convertible_to< bool >(u > t), concepts::convertible_to< bool >(t<=u), concepts::convertible_to< bool >(u<=t), concepts::convertible_to< bool >(t >=u), concepts::convertible_to< bool >(u >=t))) |
|
template<typename T > |
void | ranges::v3::concepts::TotallyOrdered::requires_ () |
|
template<typename T , typename U > |
auto | ranges::v3::concepts::TotallyOrdered::requires_ () -> decltype(concepts::valid_expr(concepts::model_of< TotallyOrdered, T >(), concepts::model_of< TotallyOrdered, U >())) |
|
template<typename T > |
auto | ranges::v3::concepts::Destructible::requires_ () -> decltype(concepts::valid_expr(concepts::is_true(std::is_nothrow_destructible< T >()))) |
|
template<typename T , typename... Args> |
auto | ranges::v3::concepts::Constructible::requires_ () -> decltype(concepts::valid_expr(concepts::is_true(std::is_constructible< T, Args... > |
|
template<typename T > |
void | ranges::v3::concepts::DefaultConstructible::requires_ () |
|
template<typename T > |
auto | ranges::v3::concepts::MoveConstructible::requires_ () -> decltype(concepts::valid_expr(concepts::model_of< Constructible, T, T >(), concepts::model_of< ConvertibleTo, T, T >())) |
|
template<typename T > |
auto | ranges::v3::concepts::CopyConstructible::requires_ () -> decltype(concepts::valid_expr(concepts::model_of< Constructible, T, T &>(), concepts::model_of< Constructible, T, T const &>(), concepts::model_of< Constructible, T, T const >(), concepts::model_of< ConvertibleTo, T &, T >(), concepts::model_of< ConvertibleTo, T const &, T >(), concepts::model_of< ConvertibleTo, T const, T >())) |
|
template<typename T > |
auto | ranges::v3::concepts::Movable::requires_ () -> decltype(concepts::valid_expr(concepts::is_true(std::is_object< T > |
|
template<typename T > |
auto | ranges::v3::concepts::Copyable::requires_ () -> decltype(concepts::valid_expr(concepts::model_of< Assignable, T &, T const &>(), concepts::model_of< Assignable, T &, T &>(), concepts::model_of< Assignable, T &, T const >())) |
|
template<typename Ret , typename T > |
Ret | ranges::v3::concepts::returns_ (T const &) |
|