Implementation details. Do not rely on anything here, even if it is documented.
Classes | |
struct | boost::hana::detail::any_of< Predicate, T > |
Returns whether the Predicate is satisfied by any of the T... . More... | |
struct | boost::hana::detail::array< T, Size > |
A minimal std::array with better constexpr support. More... | |
struct | boost::hana::detail::CanonicalConstant< T > |
Tag representing a canonical Constant . More... | |
struct | boost::hana::detail::create< T > |
Implementation of the generic std::make_xxx pattern for arbitrary xxx s. More... | |
struct | boost::hana::detail::decay< T, U > |
Equivalent to std::decay , except faster. More... | |
struct | boost::hana::detail::first_unsatisfied_index< Pred > |
Returns the index of the first element which does not satisfy Pred , or sizeof...(Xs) if no such element exists. More... | |
struct | boost::hana::detail::has_duplicates< T > |
Returns whether any of the T s are duplicate w.r.t. hana::equal . More... | |
struct | boost::hana::detail::nested_by< Algorithm > |
Provides a .by static constexpr function object. More... | |
struct | boost::hana::detail::nested_than< Algorithm > |
Provides a .than static constexpr function object. More... | |
struct | boost::hana::detail::nested_to< Algorithm > |
Provides a .to static constexpr function object. More... | |
struct | boost::hana::detail::operators::adl<... > |
Enables ADL in the hana::detail::operators namespace. More... | |
struct | boost::hana::detail::std_common_type< T, U, typename > |
Equivalent to std::common_type , except it is SFINAE-friendly and does not support custom specializations. More... | |
struct | boost::hana::detail::type_at< n, T > |
Classic MPL-style metafunction returning the nth element of a type parameter pack. More... | |
Macros | |
#define | BOOST_HANA_DISPATCH_IF(IMPL, ...) IMPL |
Dispatch to the given implementation method only when a condition is satisfied. More... | |
#define | BOOST_HANA_PP_CONCAT(x, y) BOOST_HANA_PP_CONCAT_PRIMITIVE(x, y) |
Expands to the concatenation of its two arguments. | |
#define | BOOST_HANA_PP_STRINGIZE(...) BOOST_HANA_PP_STRINGIZE_PRIMITIVE(__VA_ARGS__) |
Expands to the stringized version of its argument. | |
#define | BOOST_HANA_PP_FRONT(...) BOOST_HANA_PP_FRONT_IMPL(__VA_ARGS__, ) |
Expands to its first argument. | |
#define | BOOST_HANA_PP_DROP_FRONT(e0, ...) __VA_ARGS__ |
Expands to all of its arguments, except for the first one. More... | |
#define | BOOST_HANA_PP_NARG(...) BOOST_HANA_PP_NARG_IMPL(__VA_ARGS__, 40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,) |
Macro expanding to the number of arguments it is passed. More... | |
#define | BOOST_HANA_PP_BACK(...) BOOST_HANA_PP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__) |
Expands to its last argument. | |
#define | BOOST_HANA_PP_DROP_BACK(...) BOOST_HANA_PP_DROP_BACK_IMPL(BOOST_HANA_PP_NARG(__VA_ARGS__), __VA_ARGS__) |
Expands to all of its arguments, except for the last one. | |
Typedefs | |
template<template< typename... > class Concept, typename T , typename U > | |
using | boost::hana::detail::has_common_embedding = typename has_common_embedding_impl< Concept, T, U >::type |
Returns whether T and U both have an embedding into a common type. More... | |
template<template< typename... > class Concept, typename T , typename U > | |
using | boost::hana::detail::has_nontrivial_common_embedding = typename has_nontrivial_common_embedding_impl< Concept, T, U >::type |
Returns whether T and U are distinct and both have an embedding into a common type. More... | |
#define BOOST_HANA_DISPATCH_IF | ( | IMPL, | |
... | |||
) | IMPL |
#include <boost/hana/detail/dispatch_if.hpp>
Dispatch to the given implementation method only when a condition is satisfied.
If the condition is satisfied, this macro is equivalent to the type IMPL
. Otherwise, it is equivalent to a type with a deleted static function named apply
. When a tag-dispatching error happens, the condition should be false and the deleted static function apply
will prevent the compiler from generating too much garbage.
BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS
is defined, the condition is always ignored and this macro expands to the implementation only.BOOST_HANA_CONFIG_DISABLE_CONCEPT_CHECKS
is defined. #define BOOST_HANA_PP_DROP_FRONT | ( | e0, | |
... | |||
) | __VA_ARGS__ |
#include <boost/hana/detail/preprocessor.hpp>
Expands to all of its arguments, except for the first one.
This macro may not be called with less than 2 arguments.
#define BOOST_HANA_PP_NARG | ( | ... | ) | BOOST_HANA_PP_NARG_IMPL(__VA_ARGS__, 40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,) |
#include <boost/hana/detail/struct_macros.hpp>
Macro expanding to the number of arguments it is passed.
Specifically, BOOST_HANA_PP_NARG(x1, ..., xn)
expands to n
. It is an error to call this macro with 0 arguments.
using boost::hana::detail::has_common_embedding = typedef typename has_common_embedding_impl<Concept, T, U>::type |
#include <boost/hana/detail/has_common_embedding.hpp>
Returns whether T
and U
both have an embedding into a common type.
If T
and U
do not have a common-type, this metafunction returns false.
using boost::hana::detail::has_nontrivial_common_embedding = typedef typename has_nontrivial_common_embedding_impl<Concept, T, U>::type |
#include <boost/hana/detail/has_common_embedding.hpp>
Returns whether T
and U
are distinct and both have an embedding into a common type.
If T
and U
do not have a common-type, this metafunction returns false.