diff --git a/annotated.html b/annotated.html index c21b159aa3..135830f942 100644 --- a/annotated.html +++ b/annotated.html @@ -142,77 +142,78 @@
std::make_xxx
pattern for arbitrary xxx
s std::decay
, except faster Pred
, or sizeof...(Xs)
if no such element exists pack<>
that satisfies the predicate, or the size of the pack if there is no such element .by
static constexpr function object .than
static constexpr function object .to
static constexpr function object std::common_type
, except it is SFINAE-friendly and does not support custom specializations std::false_type
Applicative
concept represents Functor
s with the ability to lift values and combine computations hana::tuple
hana::basic_tuple
hana::type
; used for pattern-matching Comonad
concept represents context-sensitive computations and data Comparable
concept defines equality and inequality Constant
concept represents data that can be manipulated at compile-time EuclideanRing
concept represents a commutative Ring
that can also be endowed with a division algorithm Foldable
concept represents data structures that can be reduced to a single value Functor
concept represents types that can be mapped over Group
concept represents Monoid
s where all objects have an inverse w.r.t. the Monoid
's binary operation hana::integral_constant
IntegralConstant
concept represents compile-time integral values Iterable
concept represents data structures supporting external iteration hana::lazy
implements superficial laziness via a monadic interface hana::lazy
Logical
concept represents types with a truth value Comparable
keys hana::map
s Metafunction
is a function that takes hana::type
s as inputs and returns a hana::type
as output Monad
concept represents Applicative
s with the ability to flatten nested levels of structure MonadPlus
concept represents Monads with a monoidal structure Monoid
concept represents data types with an associative binary operation that has an identity hana::optional
Orderable
concept represents totally ordered data types hana::pair
hana::integral_constant
s hana::range
Ring
concept represents Group
s that also form a Monoid
under a second binary operation that distributes over the first Searchable
concept represents structures that can be searched Sequence
concept represents generic index-based sequences Comparable
elements hana::set
container Struct
concept represents struct
-like user-defined types T
hana::tuple
s hana::type
boost::tuple
s std::array
for Hana std::integer_sequence
for Hana std::integral_constant
s std::pair
for Hana std::ratio
for Hana std::tuple
s T
s are duplicate w.r.t. hana::equal
pack<>
that satisfies the predicate, or the size of the pack if there is no such element .by
static constexpr function object .than
static constexpr function object .to
static constexpr function object std::common_type
, except it is SFINAE-friendly and does not support custom specializations std::false_type
Applicative
concept represents Functor
s with the ability to lift values and combine computations hana::tuple
hana::basic_tuple
hana::type
; used for pattern-matching Comonad
concept represents context-sensitive computations and data Comparable
concept defines equality and inequality Constant
concept represents data that can be manipulated at compile-time EuclideanRing
concept represents a commutative Ring
that can also be endowed with a division algorithm Foldable
concept represents data structures that can be reduced to a single value Functor
concept represents types that can be mapped over Group
concept represents Monoid
s where all objects have an inverse w.r.t. the Monoid
's binary operation hana::integral_constant
IntegralConstant
concept represents compile-time integral values Iterable
concept represents data structures supporting external iteration hana::lazy
implements superficial laziness via a monadic interface hana::lazy
Logical
concept represents types with a truth value Comparable
keys hana::map
s Metafunction
is a function that takes hana::type
s as inputs and returns a hana::type
as output Monad
concept represents Applicative
s with the ability to flatten nested levels of structure MonadPlus
concept represents Monads with a monoidal structure Monoid
concept represents data types with an associative binary operation that has an identity hana::optional
Orderable
concept represents totally ordered data types hana::pair
hana::integral_constant
s hana::range
Ring
concept represents Group
s that also form a Monoid
under a second binary operation that distributes over the first Searchable
concept represents structures that can be searched Sequence
concept represents generic index-based sequences Comparable
elements hana::set
container Struct
concept represents struct
-like user-defined types T
hana::tuple
s hana::type
boost::tuple
s std::array
for Hana std::integer_sequence
for Hana std::integral_constant
s std::pair
for Hana std::ratio
for Hana std::tuple
s h |
i |
Defines configuration macros used throughout the library.
diff --git a/config_8hpp.js b/config_8hpp.js index 83f0c2133a..d507458336 100644 --- a/config_8hpp.js +++ b/config_8hpp.js @@ -2,5 +2,6 @@ var config_8hpp = [ [ "BOOST_HANA_CONFIG_DISABLE_ASSERTIONS", "group__group-config.html#ga08dcc32bef198420e646244e851d1995", null ], [ "BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS", "group__group-config.html#gad2b44f7cf8a6ba1002437a1a89e62acd", null ], - [ "BOOST_HANA_CONFIG_ENABLE_STRING_UDL", "group__group-config.html#ga81de60f5bea16e6ff4a38c94e3022f10", null ] + [ "BOOST_HANA_CONFIG_ENABLE_STRING_UDL", "group__group-config.html#ga81de60f5bea16e6ff4a38c94e3022f10", null ], + [ "BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE", "group__group-config.html#ga95603295cd6cc840c0dbc50b75e02ee9", null ] ]; \ No newline at end of file diff --git a/dir_d7cfc6ccec3916ea65c6380145bcef37.html b/dir_d7cfc6ccec3916ea65c6380145bcef37.html index 384598c349..48e5198403 100644 --- a/dir_d7cfc6ccec3916ea65c6380145bcef37.html +++ b/dir_d7cfc6ccec3916ea65c6380145bcef37.html @@ -166,6 +166,9 @@boost::hana::detail::has_[nontrivial_]common_embedding
. boost::hana::detail::has_duplicates
. boost::hana::detail::index_if
. boost::hana::detail::fast_and
boost::hana::detail::first_unsatisfied_index
boost::hana::detail::has_[nontrivial_]common_embedding
boost::hana::detail::index_if
boost::hana::detail::nested_by
boost::hana::detail::nested_by
boost::hana::detail::nested_than
boost::hana::detail::nested_than
boost::hana::detail::nested_to
boost::hana::detail::nested_to
std::common_type
BOOST_HANA_DEFINE_STRUCT
, BOOST_HANA_ADAPT_STRUCT
, and BOOST_HANA_ADAPT_ADT
macros boost::hana::detail::type_foldl1
boost::hana::detail::type_foldr1
std::void_t
boost::hana::detail::wrong
boost::fusion::deque
for use with Hana boost::fusion::list
for use with Hana boost::fusion::tuple
for use with Hana boost::fusion::vector
for use with Hana boost::mpl::list
for use with Hana boost::mpl::vector
for use with Hana boost::tuple
for use with Hana std::array
for use with Hana std::integer_sequence
for use with Hana std::integral_constant
for use with Hana std::pair
for use with Hana std::ratio
for use with Hana std::tuple
for use with Hana std::vector
for use with Hana boost::hana::always
boost::hana::apply
boost::hana::arg
boost::hana::capture
boost::hana::compose
boost::hana::curry
boost::hana::demux
boost::hana::fix
boost::hana::flip
boost::hana::id
boost::hana::infix
boost::hana::iterate
boost::hana::lockstep
boost::hana::on
boost::hana::overload
boost::hana::overload_linearly
boost::hana::partial
boost::hana::_
boost::hana::reverse_partial
boost::hana::Applicative
boost::hana::Comonad
boost::hana::Comparable
boost::hana::Constant
boost::hana::EuclideanRing
boost::hana::Foldable
boost::hana::Functor
boost::hana::Group
boost::hana::IntegralConstant
boost::hana::Iterable
boost::hana::Logical
boost::hana::Metafunction
boost::hana::Monad
boost::hana::MonadPlus
boost::hana::Monoid
boost::hana::Orderable
boost::hana::Product
boost::hana::Ring
boost::hana::Searchable
boost::hana::Sequence
boost::hana::Struct
boost::hana::common
and boost::hana::common_t
boost::hana::to
and related utilities boost::hana::default_
and boost::hana::is_default
boost::hana::is_a
and boost::hana::is_an
boost::hana::make
boost::hana::tag_of
and boost::hana::tag_of_t
boost::hana::when
and boost::hana::when_valid
boost::hana::accessors
BOOST_HANA_ADAPT_ADT
macro BOOST_HANA_ADAPT_STRUCT
macro boost::hana::adjust
boost::hana::adjust_if
boost::hana::all
boost::hana::all_of
boost::hana::and_
boost::hana::any
boost::hana::any_of
boost::hana::ap
boost::hana::append
boost::hana::at
and boost::hana::at_c
boost::hana::at_key
boost::hana::back
boost::hana::basic_tuple
boost::hana::cartesian_product
boost::hana::chain
boost::hana::comparing
boost::hana::concat
boost::hana::contains
and boost::hana::in
boost::hana::count
boost::hana::count_if
boost::hana::cycle
BOOST_HANA_DEFINE_STRUCT
macro boost::hana::difference
boost::hana::div
boost::hana::drop_back
boost::hana::drop_front
boost::hana::drop_front_exactly
boost::hana::drop_while
boost::hana::duplicate
boost::hana::empty
boost::hana::equal
boost::hana::erase_key
boost::hana::eval
boost::hana::eval_if
boost::hana::extend
boost::hana::extract
boost::hana::fill
boost::hana::filter
boost::hana::find
boost::hana::find_if
boost::hana::first
boost::hana::flatten
boost::hana::fold
boost::hana::fold_left
boost::hana::fold_right
boost::hana::for_each
boost::hana::front
boost::hana::fuse
boost::hana::greater
boost::hana::greater_equal
boost::hana::group
boost::hana::if_
boost::hana::insert
boost::hana::insert_range
boost::hana::integral_constant
boost::hana::intersection
boost::hana::intersperse
boost::hana::is_disjoint
boost::hana::is_empty
boost::hana::is_subset
boost::hana::keys
boost::hana::lazy
boost::hana::length
boost::hana::less
boost::hana::less_equal
boost::hana::lexicographical_compare
boost::hana::lift
boost::hana::map
boost::hana::max
boost::hana::maximum
boost::hana::members
boost::hana::min
boost::hana::minimum
boost::hana::minus
boost::hana::mod
boost::hana::monadic_compose
boost::hana::monadic_fold_left
boost::hana::monadic_fold_right
boost::hana::mult
boost::hana::negate
boost::hana::none
boost::hana::none_of
boost::hana::not_
boost::hana::not_equal
boost::hana::one
boost::hana::optional
boost::hana::or_
boost::hana::ordering
boost::hana::pair
boost::hana::partition
boost::hana::permutations
boost::hana::plus
boost::hana::power
boost::hana::prefix
boost::hana::prepend
boost::hana::product
boost::hana::range
boost::hana::remove
boost::hana::remove_at
and boost::hana::remove_at_c
boost::hana::remove_if
boost::hana::remove_range
and boost::hana::remove_range_c
boost::hana::repeat
boost::hana::replace
boost::hana::replace_if
boost::hana::replicate
boost::hana::reverse
boost::hana::reverse_fold
boost::hana::scan_left
boost::hana::scan_right
boost::hana::second
boost::hana::set
boost::hana::size
boost::hana::slice
and boost::hana::slice_c
boost::hana::sort
boost::hana::span
boost::hana::string
boost::hana::suffix
boost::hana::sum
boost::hana::symmetric_difference
boost::hana::take
and boost::hana::take_c
boost::hana::take_while
boost::hana::tap
boost::hana::then
boost::hana::transform
boost::hana::tuple
boost::hana::type
and related utilities boost::hana::unfold_left
boost::hana::unfold_right
boost::hana::union_
boost::hana::unique
boost::hana::unpack
boost::hana::value
boost::hana::while_
boost::hana::zero
boost::hana::zip
boost::hana::zip_shortest
boost::hana::zip_shortest_with
boost::hana::zip_with
boost::hana::accessors
BOOST_HANA_ADAPT_ADT
macro BOOST_HANA_ADAPT_STRUCT
macro boost::hana::adjust
boost::hana::adjust_if
boost::hana::all
boost::hana::all_of
boost::hana::and_
boost::hana::any
boost::hana::any_of
boost::hana::ap
boost::hana::append
boost::hana::at
and boost::hana::at_c
boost::hana::at_key
boost::hana::back
boost::hana::basic_tuple
Logical
and Comparable
models of boost::hana::integral_constant
boost::hana::cartesian_product
boost::hana::chain
boost::hana::comparing
boost::hana::concat
boost/hana/concept/
subdirectory boost::hana::contains
and boost::hana::in
boost::hana::count
boost::hana::count_if
boost::hana::cycle
BOOST_HANA_DEFINE_STRUCT
macro boost::hana::difference
boost::hana::div
boost::hana::drop_back
boost::hana::drop_front
boost::hana::drop_front_exactly
boost::hana::drop_while
boost::hana::duplicate
boost::hana::empty
boost::hana::equal
boost::hana::erase_key
boost::hana::eval
boost::hana::eval_if
boost::hana::extend
boost::hana::extract
boost::hana::fill
boost::hana::filter
boost::hana::find
boost::hana::find_if
boost::hana::first
boost::hana::flatten
boost::hana::fold
boost::hana::fold_left
boost::hana::fold_right
boost::hana::for_each
boost::hana::front
boost::hana::fuse
boost::hana::greater
boost::hana::greater_equal
boost::hana::group
boost::hana::if_
boost::hana::insert
boost::hana::insert_range
boost::hana::integral_constant
boost::hana::intersection
boost::hana::intersperse
boost::hana::is_disjoint
boost::hana::is_empty
boost::hana::is_subset
boost::hana::keys
boost::hana::lazy
boost::hana::length
boost::hana::less
boost::hana::less_equal
boost::hana::lexicographical_compare
boost::hana::lift
boost::hana::map
boost::hana::max
boost::hana::maximum
boost::hana::members
boost::hana::min
boost::hana::minimum
boost::hana::minus
boost::hana::mod
boost::hana::monadic_compose
boost::hana::monadic_fold_left
boost::hana::monadic_fold_right
boost::hana::mult
boost::hana::negate
boost::hana::none
boost::hana::none_of
boost::hana::not_
boost::hana::not_equal
boost::hana::one
boost::hana::optional
boost::hana::or_
boost::hana::ordering
boost::hana::pair
boost::hana::partition
boost::hana::permutations
boost::hana::plus
boost::hana::power
boost::hana::prefix
boost::hana::prepend
boost::hana::product
boost::hana::range
boost::hana::remove
boost::hana::remove_at
and boost::hana::remove_at_c
boost::hana::remove_if
boost::hana::remove_range
and boost::hana::remove_range_c
boost::hana::repeat
boost::hana::replace
boost::hana::replace_if
boost::hana::replicate
boost::hana::reverse
boost::hana::reverse_fold
boost::hana::scan_left
boost::hana::scan_right
boost::hana::second
boost::hana::set
boost::hana::size
boost::hana::slice
and boost::hana::slice_c
boost::hana::sort
boost::hana::span
boost::hana::string
boost::hana::suffix
boost::hana::sum
boost::hana::symmetric_difference
boost::hana::take
and boost::hana::take_c
boost::hana::take_while
boost::hana::tap
boost::hana::then
<type_traits>
, and also to some utilities like std::declval
boost::hana::transform
boost::hana::tuple
boost::hana::type
and related utilities boost::hana::unfold_left
boost::hana::unfold_right
boost::hana::union
boost::hana::unique
boost::hana::unpack
boost::hana::value
boost::hana::while_
boost::hana::zero
boost::hana::zip
boost::hana::zip_shortest
boost::hana::zip_shortest_with
boost::hana::zip_with
boost::hana::detail::has_duplicates
boost::hana::detail::index_if
boost::hana::detail::nested_by
boost::hana::detail::nested_by
boost::hana::detail::nested_than
boost::hana::detail::nested_than
boost::hana::detail::nested_to
boost::hana::detail::nested_to
std::common_type
BOOST_HANA_DEFINE_STRUCT
, BOOST_HANA_ADAPT_STRUCT
, and BOOST_HANA_ADAPT_ADT
macros boost::hana::detail::type_foldl1
boost::hana::detail::type_foldr1
std::void_t
boost::hana::detail::wrong
boost::fusion::deque
for use with Hana boost::fusion::list
for use with Hana boost::fusion::tuple
for use with Hana boost::fusion::vector
for use with Hana boost::mpl::list
for use with Hana boost::mpl::vector
for use with Hana boost::tuple
for use with Hana std::array
for use with Hana std::integer_sequence
for use with Hana std::integral_constant
for use with Hana std::pair
for use with Hana std::ratio
for use with Hana std::tuple
for use with Hana std::vector
for use with Hana boost::hana::always
boost::hana::apply
boost::hana::arg
boost::hana::capture
boost::hana::compose
boost::hana::curry
boost::hana::demux
boost::hana::fix
boost::hana::flip
boost::hana::id
boost::hana::infix
boost::hana::iterate
boost::hana::lockstep
boost::hana::on
boost::hana::overload
boost::hana::overload_linearly
boost::hana::partial
boost::hana::_
boost::hana::reverse_partial
boost::hana::Applicative
boost::hana::Comonad
boost::hana::Comparable
boost::hana::Constant
boost::hana::EuclideanRing
boost::hana::Foldable
boost::hana::Functor
boost::hana::Group
boost::hana::IntegralConstant
boost::hana::Iterable
boost::hana::Logical
boost::hana::Metafunction
boost::hana::Monad
boost::hana::MonadPlus
boost::hana::Monoid
boost::hana::Orderable
boost::hana::Product
boost::hana::Ring
boost::hana::Searchable
boost::hana::Sequence
boost::hana::Struct
boost::hana::common
and boost::hana::common_t
boost::hana::to
and related utilities boost::hana::default_
and boost::hana::is_default
boost::hana::is_a
and boost::hana::is_an
boost::hana::make
boost::hana::tag_of
and boost::hana::tag_of_t
boost::hana::when
and boost::hana::when_valid
boost::hana::accessors
BOOST_HANA_ADAPT_ADT
macro BOOST_HANA_ADAPT_STRUCT
macro boost::hana::adjust
boost::hana::adjust_if
boost::hana::all
boost::hana::all_of
boost::hana::and_
boost::hana::any
boost::hana::any_of
boost::hana::ap
boost::hana::append
boost::hana::at
and boost::hana::at_c
boost::hana::at_key
boost::hana::back
boost::hana::basic_tuple
boost::hana::cartesian_product
boost::hana::chain
boost::hana::comparing
boost::hana::concat
boost::hana::contains
and boost::hana::in
boost::hana::count
boost::hana::count_if
boost::hana::cycle
BOOST_HANA_DEFINE_STRUCT
macro boost::hana::difference
boost::hana::div
boost::hana::drop_back
boost::hana::drop_front
boost::hana::drop_front_exactly
boost::hana::drop_while
boost::hana::duplicate
boost::hana::empty
boost::hana::equal
boost::hana::erase_key
boost::hana::eval
boost::hana::eval_if
boost::hana::extend
boost::hana::extract
boost::hana::fill
boost::hana::filter
boost::hana::find
boost::hana::find_if
boost::hana::first
boost::hana::flatten
boost::hana::fold
boost::hana::fold_left
boost::hana::fold_right
boost::hana::for_each
boost::hana::front
boost::hana::fuse
boost::hana::greater
boost::hana::greater_equal
boost::hana::group
boost::hana::if_
boost::hana::insert
boost::hana::insert_range
boost::hana::integral_constant
boost::hana::intersection
boost::hana::intersperse
boost::hana::is_disjoint
boost::hana::is_empty
boost::hana::is_subset
boost::hana::keys
boost::hana::lazy
boost::hana::length
boost::hana::less
boost::hana::less_equal
boost::hana::lexicographical_compare
boost::hana::lift
boost::hana::map
boost::hana::max
boost::hana::maximum
boost::hana::members
boost::hana::min
boost::hana::minimum
boost::hana::minus
boost::hana::mod
boost::hana::monadic_compose
boost::hana::monadic_fold_left
boost::hana::monadic_fold_right
boost::hana::mult
boost::hana::negate
boost::hana::none
boost::hana::none_of
boost::hana::not_
boost::hana::not_equal
boost::hana::one
boost::hana::optional
boost::hana::or_
boost::hana::ordering
boost::hana::pair
boost::hana::partition
boost::hana::permutations
boost::hana::plus
boost::hana::power
boost::hana::prefix
boost::hana::prepend
boost::hana::product
boost::hana::range
boost::hana::remove
boost::hana::remove_at
and boost::hana::remove_at_c
boost::hana::remove_if
boost::hana::remove_range
and boost::hana::remove_range_c
boost::hana::repeat
boost::hana::replace
boost::hana::replace_if
boost::hana::replicate
boost::hana::reverse
boost::hana::reverse_fold
boost::hana::scan_left
boost::hana::scan_right
boost::hana::second
boost::hana::set
boost::hana::size
boost::hana::slice
and boost::hana::slice_c
boost::hana::sort
boost::hana::span
boost::hana::string
boost::hana::suffix
boost::hana::sum
boost::hana::symmetric_difference
boost::hana::take
and boost::hana::take_c
boost::hana::take_while
boost::hana::tap
boost::hana::then
boost::hana::transform
boost::hana::tuple
boost::hana::type
and related utilities boost::hana::unfold_left
boost::hana::unfold_right
boost::hana::union_
boost::hana::unique
boost::hana::unpack
boost::hana::value
boost::hana::while_
boost::hana::zero
boost::hana::zip
boost::hana::zip_shortest
boost::hana::zip_shortest_with
boost::hana::zip_with
boost::hana::accessors
BOOST_HANA_ADAPT_ADT
macro BOOST_HANA_ADAPT_STRUCT
macro boost::hana::adjust
boost::hana::adjust_if
boost::hana::all
boost::hana::all_of
boost::hana::and_
boost::hana::any
boost::hana::any_of
boost::hana::ap
boost::hana::append
boost::hana::at
and boost::hana::at_c
boost::hana::at_key
boost::hana::back
boost::hana::basic_tuple
Logical
and Comparable
models of boost::hana::integral_constant
boost::hana::cartesian_product
boost::hana::chain
boost::hana::comparing
boost::hana::concat
boost/hana/concept/
subdirectory boost::hana::contains
and boost::hana::in
boost::hana::count
boost::hana::count_if
boost::hana::cycle
BOOST_HANA_DEFINE_STRUCT
macro boost::hana::difference
boost::hana::div
boost::hana::drop_back
boost::hana::drop_front
boost::hana::drop_front_exactly
boost::hana::drop_while
boost::hana::duplicate
boost::hana::empty
boost::hana::equal
boost::hana::erase_key
boost::hana::eval
boost::hana::eval_if
boost::hana::extend
boost::hana::extract
boost::hana::fill
boost::hana::filter
boost::hana::find
boost::hana::find_if
boost::hana::first
boost::hana::flatten
boost::hana::fold
boost::hana::fold_left
boost::hana::fold_right
boost::hana::for_each
boost::hana::front
boost::hana::fuse
boost::hana::greater
boost::hana::greater_equal
boost::hana::group
boost::hana::if_
boost::hana::insert
boost::hana::insert_range
boost::hana::integral_constant
boost::hana::intersection
boost::hana::intersperse
boost::hana::is_disjoint
boost::hana::is_empty
boost::hana::is_subset
boost::hana::keys
boost::hana::lazy
boost::hana::length
boost::hana::less
boost::hana::less_equal
boost::hana::lexicographical_compare
boost::hana::lift
boost::hana::map
boost::hana::max
boost::hana::maximum
boost::hana::members
boost::hana::min
boost::hana::minimum
boost::hana::minus
boost::hana::mod
boost::hana::monadic_compose
boost::hana::monadic_fold_left
boost::hana::monadic_fold_right
boost::hana::mult
boost::hana::negate
boost::hana::none
boost::hana::none_of
boost::hana::not_
boost::hana::not_equal
boost::hana::one
boost::hana::optional
boost::hana::or_
boost::hana::ordering
boost::hana::pair
boost::hana::partition
boost::hana::permutations
boost::hana::plus
boost::hana::power
boost::hana::prefix
boost::hana::prepend
boost::hana::product
boost::hana::range
boost::hana::remove
boost::hana::remove_at
and boost::hana::remove_at_c
boost::hana::remove_if
boost::hana::remove_range
and boost::hana::remove_range_c
boost::hana::repeat
boost::hana::replace
boost::hana::replace_if
boost::hana::replicate
boost::hana::reverse
boost::hana::reverse_fold
boost::hana::scan_left
boost::hana::scan_right
boost::hana::second
boost::hana::set
boost::hana::size
boost::hana::slice
and boost::hana::slice_c
boost::hana::sort
boost::hana::span
boost::hana::string
boost::hana::suffix
boost::hana::sum
boost::hana::symmetric_difference
boost::hana::take
and boost::hana::take_c
boost::hana::take_while
boost::hana::tap
boost::hana::then
<type_traits>
, and also to some utilities like std::declval
boost::hana::transform
boost::hana::tuple
boost::hana::type
and related utilities boost::hana::unfold_left
boost::hana::unfold_right
boost::hana::union
boost::hana::unique
boost::hana::unpack
boost::hana::value
boost::hana::while_
boost::hana::zero
boost::hana::zip
boost::hana::zip_shortest
boost::hana::zip_shortest_with
boost::hana::zip_with
x
in x.y.z
. That operator is not part of the language yet, but it is supported by both Clang and GCC. This operator allows Hana to provide the nice _s
user-defined literal for creating compile-time strings.
When this macro is not defined, the GNU extension will be not used by Hana. Because this is a non-standard extension, the macro is not defined by default.
+ + + +#define BOOST_HANA_CONFIG_ENABLE_DEBUG_MODE | +
#include <boost/hana/config.hpp>
Enables additional assertions and sanity checks to be done by Hana.
+When this macro is defined (it is not defined by default), additional sanity checks may be done by Hana. These checks may be costly to perform, either in terms of compilation time or in terms of execution time. These checks may help debugging an application during its initial development, but they should not be enabled as part of the normal configuration.
+Pred
, or sizeof...(Xs)
if no such element exists. More...T
s are duplicate w.r.t. hana::equal
. More...pack<>
that satisfies the predicate, or the size of the pack if there is no such element. More...Defines boost::hana::detail::has_duplicates
.
+More...
+Classes | |
struct | boost::hana::detail::has_duplicates< T > |
Returns whether any of the T s are duplicate w.r.t. hana::equal . More... | |
+Namespaces | |
boost | |
Defines boost::hana::detail::has_duplicates
.
std::make_xxx
pattern for arbitrary xxx
s std::decay
, except faster Pred
, or sizeof...(Xs)
if no such element exists pack<>
that satisfies the predicate, or the size of the pack if there is no such element .by
static constexpr function object .than
static constexpr function object .to
static constexpr function object hana::detail::operators
namespace std::common_type
, except it is SFINAE-friendly and does not support custom specializations std::false_type
EuclideanRing
concept represents a commutative Ring
that can also be endowed with a division algorithm Foldable
concept represents data structures that can be reduced to a single value Functor
concept represents types that can be mapped over Group
concept represents Monoid
s where all objects have an inverse w.r.t. the Monoid
's binary operation hana::integral_constant
IntegralConstant
concept represents compile-time integral values Iterable
concept represents data structures supporting external iteration hana::lazy
implements superficial laziness via a monadic interface hana::lazy
Logical
concept represents types with a truth value Comparable
keys hana::map
s Metafunction
is a function that takes hana::type
s as inputs and returns a hana::type
as output Monad
concept represents Applicative
s with the ability to flatten nested levels of structure MonadPlus
concept represents Monads with a monoidal structure Monoid
concept represents data types with an associative binary operation that has an identity hana::optional
Orderable
concept represents totally ordered data types hana::pair
hana::integral_constant
s hana::range
Ring
concept represents Group
s that also form a Monoid
under a second binary operation that distributes over the first Searchable
concept represents structures that can be searched Sequence
concept represents generic index-based sequences Comparable
elements hana::set
container Struct
concept represents struct
-like user-defined types T
hana::tuple
s hana::type
boost::tuple
s std::array
for Hana std::integer_sequence
for Hana std::integral_constant
s std::pair
for Hana std::ratio
for Hana std::tuple
s T
s are duplicate w.r.t. hana::equal
pack<>
that satisfies the predicate, or the size of the pack if there is no such element .by
static constexpr function object .than
static constexpr function object .to
static constexpr function object hana::detail::operators
namespace std::common_type
, except it is SFINAE-friendly and does not support custom specializations std::false_type
EuclideanRing
concept represents a commutative Ring
that can also be endowed with a division algorithm Foldable
concept represents data structures that can be reduced to a single value Functor
concept represents types that can be mapped over Group
concept represents Monoid
s where all objects have an inverse w.r.t. the Monoid
's binary operation hana::integral_constant
IntegralConstant
concept represents compile-time integral values Iterable
concept represents data structures supporting external iteration hana::lazy
implements superficial laziness via a monadic interface hana::lazy
Logical
concept represents types with a truth value Comparable
keys hana::map
s Metafunction
is a function that takes hana::type
s as inputs and returns a hana::type
as output Monad
concept represents Applicative
s with the ability to flatten nested levels of structure MonadPlus
concept represents Monads with a monoidal structure Monoid
concept represents data types with an associative binary operation that has an identity hana::optional
Orderable
concept represents totally ordered data types hana::pair
hana::integral_constant
s hana::range
Ring
concept represents Group
s that also form a Monoid
under a second binary operation that distributes over the first Searchable
concept represents structures that can be searched Sequence
concept represents generic index-based sequences Comparable
elements hana::set
container Struct
concept represents struct
-like user-defined types T
hana::tuple
s hana::type
boost::tuple
s std::array
for Hana std::integer_sequence
for Hana std::integral_constant
s std::pair
for Hana std::ratio
for Hana std::tuple
s In fact, the return type of a function may only depend on the types of its arguments, and constexpr
can't change this fact. This is of utmost importance to us, because we're interested in manipulating heterogeneous objects, which eventually means returning objects with different types depending on the argument of the function. For example, a function might want to return an object of type T
in one case and an object of type U
in the other; from our analysis, we now know that these "cases" will have to depend on information encoded in the types of the arguments, not in their values.
To preserve constexpr
-ness through argument passing, we have to encode the constexpr
value into a type, and then pass a not-necessarily-constexpr
object of that type to the function. The function, which must be a template, may then access the constexpr
value encoded inside that type.
Let me ask a tricky question. Is the following code valid?
@@ -2258,7 +2258,7 @@Returns the greatest of its arguments according to the less
ordering.
min
for details.min
for details.Returns the smallest of its arguments according to the less
ordering.
x < y
or not. If we wanted to be mathematically correct, we should probably ask that if_(cond, x, y)
returns a common data type of x
and y
, and then the behavior of min
would follow naturally. However, I'm unsure whether this is desirable because that's a big requirement.x < y
or not. If we wanted to be mathematically correct, we should probably ask that if_(cond, x, y)
returns a common data type of x
and y
, and then the behavior of min
would follow naturally. However, I'm unsure whether this is desirable because that's a big requirement.This is the complete list of members for boost::hana::detail::has_duplicates< T >, including all inherited members.
+Returns whether any of the T
s are duplicate w.r.t. hana::equal
.
In particular, this does not check whether all of the T
s are unique as types, but rather whether they are unique when compared as hana::equal(std::declval<T>(), std::declval<U>())
. This assumes the comparison to return an IntegralConstant
that can be explicitly converted to bool
.
false
most of the time (otherwise we will assert). Hence, this implementation is biased towards the fact that we will have to compare every pair of elements in most cases, and it does not try to be lazy.min
for details. x < y
or not. If we wanted to be mathematically correct, we should probably ask that if_(cond, x, y)
returns a common data type of x
and y
, and then the behavior of min
would follow naturally. However, I'm unsure whether this is desirable because that's a big requirement. Improve this explanation and talk about non-integral constant expressions wrapped into types.
Explain how side-effects may not appear inside constant expressions, even if the expression they yield are not accessed.