view release on metacpan or search on metacpan
include/boost/mpl/aux_/preprocessed/bcc/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/bcc/less.hpp
include/boost/mpl/aux_/preprocessed/bcc/less_equal.hpp
include/boost/mpl/aux_/preprocessed/bcc/list.hpp
include/boost/mpl/aux_/preprocessed/bcc/list_c.hpp
include/boost/mpl/aux_/preprocessed/bcc/map.hpp
include/boost/mpl/aux_/preprocessed/bcc/minus.hpp
include/boost/mpl/aux_/preprocessed/bcc/modulus.hpp
include/boost/mpl/aux_/preprocessed/bcc/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/bcc/or.hpp
include/boost/mpl/aux_/preprocessed/bcc/placeholders.hpp
include/boost/mpl/aux_/preprocessed/bcc/plus.hpp
include/boost/mpl/aux_/preprocessed/bcc/quote.hpp
include/boost/mpl/aux_/preprocessed/bcc/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc/set.hpp
include/boost/mpl/aux_/preprocessed/bcc/set_c.hpp
include/boost/mpl/aux_/preprocessed/bcc/shift_left.hpp
include/boost/mpl/aux_/preprocessed/bcc/shift_right.hpp
include/boost/mpl/aux_/preprocessed/bcc551/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc551/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc551/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/bcc551/less.hpp
include/boost/mpl/aux_/preprocessed/bcc551/less_equal.hpp
include/boost/mpl/aux_/preprocessed/bcc551/list.hpp
include/boost/mpl/aux_/preprocessed/bcc551/list_c.hpp
include/boost/mpl/aux_/preprocessed/bcc551/map.hpp
include/boost/mpl/aux_/preprocessed/bcc551/minus.hpp
include/boost/mpl/aux_/preprocessed/bcc551/modulus.hpp
include/boost/mpl/aux_/preprocessed/bcc551/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/bcc551/or.hpp
include/boost/mpl/aux_/preprocessed/bcc551/placeholders.hpp
include/boost/mpl/aux_/preprocessed/bcc551/plus.hpp
include/boost/mpl/aux_/preprocessed/bcc551/quote.hpp
include/boost/mpl/aux_/preprocessed/bcc551/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc551/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc551/set.hpp
include/boost/mpl/aux_/preprocessed/bcc551/set_c.hpp
include/boost/mpl/aux_/preprocessed/bcc551/shift_left.hpp
include/boost/mpl/aux_/preprocessed/bcc551/shift_right.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/less.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/less_equal.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/list.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/list_c.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/map.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/minus.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/modulus.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/or.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/placeholders.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/plus.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/quote.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/set.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/set_c.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/shift_left.hpp
include/boost/mpl/aux_/preprocessed/bcc_pre590/shift_right.hpp
include/boost/mpl/aux_/preprocessed/dmc/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/dmc/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/dmc/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/dmc/less.hpp
include/boost/mpl/aux_/preprocessed/dmc/less_equal.hpp
include/boost/mpl/aux_/preprocessed/dmc/list.hpp
include/boost/mpl/aux_/preprocessed/dmc/list_c.hpp
include/boost/mpl/aux_/preprocessed/dmc/map.hpp
include/boost/mpl/aux_/preprocessed/dmc/minus.hpp
include/boost/mpl/aux_/preprocessed/dmc/modulus.hpp
include/boost/mpl/aux_/preprocessed/dmc/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/dmc/or.hpp
include/boost/mpl/aux_/preprocessed/dmc/placeholders.hpp
include/boost/mpl/aux_/preprocessed/dmc/plus.hpp
include/boost/mpl/aux_/preprocessed/dmc/quote.hpp
include/boost/mpl/aux_/preprocessed/dmc/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/dmc/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/dmc/set.hpp
include/boost/mpl/aux_/preprocessed/dmc/set_c.hpp
include/boost/mpl/aux_/preprocessed/dmc/shift_left.hpp
include/boost/mpl/aux_/preprocessed/dmc/shift_right.hpp
include/boost/mpl/aux_/preprocessed/gcc/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/gcc/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/gcc/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/gcc/less.hpp
include/boost/mpl/aux_/preprocessed/gcc/less_equal.hpp
include/boost/mpl/aux_/preprocessed/gcc/list.hpp
include/boost/mpl/aux_/preprocessed/gcc/list_c.hpp
include/boost/mpl/aux_/preprocessed/gcc/map.hpp
include/boost/mpl/aux_/preprocessed/gcc/minus.hpp
include/boost/mpl/aux_/preprocessed/gcc/modulus.hpp
include/boost/mpl/aux_/preprocessed/gcc/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/gcc/or.hpp
include/boost/mpl/aux_/preprocessed/gcc/placeholders.hpp
include/boost/mpl/aux_/preprocessed/gcc/plus.hpp
include/boost/mpl/aux_/preprocessed/gcc/quote.hpp
include/boost/mpl/aux_/preprocessed/gcc/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/gcc/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/gcc/set.hpp
include/boost/mpl/aux_/preprocessed/gcc/set_c.hpp
include/boost/mpl/aux_/preprocessed/gcc/shift_left.hpp
include/boost/mpl/aux_/preprocessed/gcc/shift_right.hpp
include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/msvc60/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/msvc60/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/msvc60/less.hpp
include/boost/mpl/aux_/preprocessed/msvc60/less_equal.hpp
include/boost/mpl/aux_/preprocessed/msvc60/list.hpp
include/boost/mpl/aux_/preprocessed/msvc60/list_c.hpp
include/boost/mpl/aux_/preprocessed/msvc60/map.hpp
include/boost/mpl/aux_/preprocessed/msvc60/minus.hpp
include/boost/mpl/aux_/preprocessed/msvc60/modulus.hpp
include/boost/mpl/aux_/preprocessed/msvc60/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/msvc60/or.hpp
include/boost/mpl/aux_/preprocessed/msvc60/placeholders.hpp
include/boost/mpl/aux_/preprocessed/msvc60/plus.hpp
include/boost/mpl/aux_/preprocessed/msvc60/quote.hpp
include/boost/mpl/aux_/preprocessed/msvc60/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/msvc60/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/msvc60/set.hpp
include/boost/mpl/aux_/preprocessed/msvc60/set_c.hpp
include/boost/mpl/aux_/preprocessed/msvc60/shift_left.hpp
include/boost/mpl/aux_/preprocessed/msvc60/shift_right.hpp
include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/msvc70/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/msvc70/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/msvc70/less.hpp
include/boost/mpl/aux_/preprocessed/msvc70/less_equal.hpp
include/boost/mpl/aux_/preprocessed/msvc70/list.hpp
include/boost/mpl/aux_/preprocessed/msvc70/list_c.hpp
include/boost/mpl/aux_/preprocessed/msvc70/map.hpp
include/boost/mpl/aux_/preprocessed/msvc70/minus.hpp
include/boost/mpl/aux_/preprocessed/msvc70/modulus.hpp
include/boost/mpl/aux_/preprocessed/msvc70/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/msvc70/or.hpp
include/boost/mpl/aux_/preprocessed/msvc70/placeholders.hpp
include/boost/mpl/aux_/preprocessed/msvc70/plus.hpp
include/boost/mpl/aux_/preprocessed/msvc70/quote.hpp
include/boost/mpl/aux_/preprocessed/msvc70/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/msvc70/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/msvc70/set.hpp
include/boost/mpl/aux_/preprocessed/msvc70/set_c.hpp
include/boost/mpl/aux_/preprocessed/msvc70/shift_left.hpp
include/boost/mpl/aux_/preprocessed/msvc70/shift_right.hpp
include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/mwcw/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/mwcw/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/mwcw/less.hpp
include/boost/mpl/aux_/preprocessed/mwcw/less_equal.hpp
include/boost/mpl/aux_/preprocessed/mwcw/list.hpp
include/boost/mpl/aux_/preprocessed/mwcw/list_c.hpp
include/boost/mpl/aux_/preprocessed/mwcw/map.hpp
include/boost/mpl/aux_/preprocessed/mwcw/minus.hpp
include/boost/mpl/aux_/preprocessed/mwcw/modulus.hpp
include/boost/mpl/aux_/preprocessed/mwcw/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/mwcw/or.hpp
include/boost/mpl/aux_/preprocessed/mwcw/placeholders.hpp
include/boost/mpl/aux_/preprocessed/mwcw/plus.hpp
include/boost/mpl/aux_/preprocessed/mwcw/quote.hpp
include/boost/mpl/aux_/preprocessed/mwcw/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/mwcw/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/mwcw/set.hpp
include/boost/mpl/aux_/preprocessed/mwcw/set_c.hpp
include/boost/mpl/aux_/preprocessed/mwcw/shift_left.hpp
include/boost/mpl/aux_/preprocessed/mwcw/shift_right.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/less.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/less_equal.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/list.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/list_c.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/map.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/minus.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/modulus.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/or.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/placeholders.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/plus.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/quote.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/set.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/set_c.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/shift_left.hpp
include/boost/mpl/aux_/preprocessed/no_ctps/shift_right.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/less.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/less_equal.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/list.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/list_c.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/map.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/minus.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/modulus.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/or.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/placeholders.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/plus.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/quote.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/set.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/set_c.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/shift_left.hpp
include/boost/mpl/aux_/preprocessed/no_ttp/shift_right.hpp
include/boost/mpl/aux_/preprocessed/plain/iter_fold_if_impl.hpp
include/boost/mpl/aux_/preprocessed/plain/iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/plain/lambda_no_ctps.hpp
include/boost/mpl/aux_/preprocessed/plain/less.hpp
include/boost/mpl/aux_/preprocessed/plain/less_equal.hpp
include/boost/mpl/aux_/preprocessed/plain/list.hpp
include/boost/mpl/aux_/preprocessed/plain/list_c.hpp
include/boost/mpl/aux_/preprocessed/plain/map.hpp
include/boost/mpl/aux_/preprocessed/plain/minus.hpp
include/boost/mpl/aux_/preprocessed/plain/modulus.hpp
include/boost/mpl/aux_/preprocessed/plain/not_equal_to.hpp
include/boost/mpl/aux_/preprocessed/plain/or.hpp
include/boost/mpl/aux_/preprocessed/plain/placeholders.hpp
include/boost/mpl/aux_/preprocessed/plain/plus.hpp
include/boost/mpl/aux_/preprocessed/plain/quote.hpp
include/boost/mpl/aux_/preprocessed/plain/reverse_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/plain/reverse_iter_fold_impl.hpp
include/boost/mpl/aux_/preprocessed/plain/set.hpp
include/boost/mpl/aux_/preprocessed/plain/set_c.hpp
include/boost/mpl/aux_/preprocessed/plain/shift_left.hpp
include/boost/mpl/aux_/preprocessed/plain/shift_right.hpp
include/boost/preprocessor/assert_msg.hpp
include/boost/preprocessor/cat.hpp
include/boost/preprocessor/comma.hpp
include/boost/preprocessor/comma_if.hpp
include/boost/preprocessor/comparison.hpp
include/boost/preprocessor/comparison/equal.hpp
include/boost/preprocessor/comparison/greater.hpp
include/boost/preprocessor/comparison/greater_equal.hpp
include/boost/preprocessor/comparison/less.hpp
include/boost/preprocessor/comparison/less_equal.hpp
include/boost/preprocessor/comparison/not_equal.hpp
include/boost/preprocessor/config/config.hpp
include/boost/preprocessor/config/limits.hpp
include/boost/preprocessor/control.hpp
include/boost/preprocessor/control/deduce_d.hpp
include/boost/preprocessor/control/detail/dmc/while.hpp
include/boost/preprocessor/control/detail/edg/while.hpp
include/boost/preprocessor/control/detail/msvc/while.hpp
include/boost/preprocessor/control/detail/while.hpp
include/boost/preprocessor/control/expr_if.hpp
include/boost/preprocessor/control/expr_iif.hpp
include/boost/callable_traits/add_member_const.hpp view on Meta::CPAN
template<typename T>
using add_member_const_t = //see below
//<-
#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
detail::sfinae_try<
typename detail::traits<T>::add_member_const,
detail::fail_when_same<typename detail::traits<T>::add_member_const,
detail::abominable_functions_not_supported_on_this_compiler,
this_compiler_doesnt_support_abominable_function_types>,
detail::fail_if_invalid<typename detail::traits<T>::add_member_const,
member_qualifiers_are_illegal_for_this_type>>;
#else
detail::try_but_fail_if_invalid<
typename detail::traits<T>::add_member_const,
member_qualifiers_are_illegal_for_this_type>;
include/boost/callable_traits/add_member_cv.hpp view on Meta::CPAN
template<typename T>
using add_member_cv_t = //see below
//<-
#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
detail::sfinae_try<
typename detail::traits<T>::add_member_cv,
detail::fail_when_same<typename detail::traits<T>::add_member_cv,
detail::abominable_functions_not_supported_on_this_compiler,
this_compiler_doesnt_support_abominable_function_types>,
detail::fail_if_invalid<typename detail::traits<T>::add_member_cv,
member_qualifiers_are_illegal_for_this_type>>;
#else
detail::try_but_fail_if_invalid<
typename detail::traits<T>::add_member_cv,
member_qualifiers_are_illegal_for_this_type>;
include/boost/callable_traits/add_member_lvalue_reference.hpp view on Meta::CPAN
//->
template<typename T>
using add_member_lvalue_reference_t = //see below
//<-
#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
detail::sfinae_try<
typename detail::traits<T>::add_member_lvalue_reference,
detail::fail_when_same<typename detail::traits<T>::add_member_lvalue_reference,
detail::abominable_functions_not_supported_on_this_compiler,
this_compiler_doesnt_support_abominable_function_types>,
detail::fail_if_invalid<
typename detail::traits<T>::add_member_lvalue_reference,
member_qualifiers_are_illegal_for_this_type>>;
#else
detail::try_but_fail_if_invalid<
typename detail::traits<T>::add_member_lvalue_reference,
member_qualifiers_are_illegal_for_this_type>;
include/boost/callable_traits/add_member_rvalue_reference.hpp view on Meta::CPAN
//->
template<typename T>
using add_member_rvalue_reference_t = //see below
//<-
#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
detail::sfinae_try<
typename detail::traits<T>::add_member_rvalue_reference,
detail::fail_when_same<typename detail::traits<T>::add_member_rvalue_reference,
detail::abominable_functions_not_supported_on_this_compiler,
this_compiler_doesnt_support_abominable_function_types>,
detail::fail_if_invalid<typename detail::traits<T>::add_member_rvalue_reference,
member_qualifiers_are_illegal_for_this_type>>;
#else
detail::try_but_fail_if_invalid<
typename detail::traits<T>::add_member_rvalue_reference,
member_qualifiers_are_illegal_for_this_type>;
include/boost/callable_traits/add_member_volatile.hpp view on Meta::CPAN
template<typename T>
using add_member_volatile_t = //see below
//<-
#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
detail::sfinae_try<
typename detail::traits<T>::add_member_volatile,
detail::fail_when_same<typename detail::traits<T>::add_member_volatile,
detail::abominable_functions_not_supported_on_this_compiler,
this_compiler_doesnt_support_abominable_function_types>,
detail::fail_if_invalid<
typename detail::traits<T>::add_member_volatile,
member_qualifiers_are_illegal_for_this_type>>;
#else
detail::try_but_fail_if_invalid<
typename detail::traits<T>::add_member_volatile,
member_qualifiers_are_illegal_for_this_type>;
include/boost/callable_traits/add_noexcept.hpp view on Meta::CPAN
*/
#ifndef BOOST_CLBL_TRTS_ADD_NOEXCEPT_HPP
#define BOOST_CLBL_TRTS_ADD_NOEXCEPT_HPP
#include <boost/callable_traits/detail/core.hpp>
namespace boost { namespace callable_traits {
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(add_noexcept)
BOOST_CLBL_TRTS_SFINAE_MSG(add_noexcept, cannot_add_noexcept_to_this_type)
#ifndef BOOST_CLBL_TRTS_ENABLE_NOEXCEPT_TYPES
template<typename T>
struct add_noexcept_t {
static_assert(std::is_same<T, detail::dummy>::value,
"noexcept types not supported by this configuration.");
};
template<typename T>
struct add_noexcept {
include/boost/callable_traits/add_noexcept.hpp view on Meta::CPAN
[heading Header]
``#include <boost/callable_traits/add_noexcept.hpp>``
[heading Definition]
*/
template<typename T>
using add_noexcept_t = //see below
//<-
detail::try_but_fail_if_invalid<
typename detail::traits<T>::add_noexcept,
cannot_add_noexcept_to_this_type>;
namespace detail {
template<typename T, typename = std::false_type>
struct add_noexcept_impl {};
template<typename T>
struct add_noexcept_impl <T, typename std::is_same<
add_noexcept_t<T>, detail::dummy>::type>
{
include/boost/callable_traits/add_transaction_safe.hpp view on Meta::CPAN
*/
#ifndef BOOST_CLBL_TRTS_ADD_TRANSACTION_SAFE_HPP
#define BOOST_CLBL_TRTS_ADD_TRANSACTION_SAFE_HPP
#include <boost/callable_traits/detail/core.hpp>
namespace boost { namespace callable_traits {
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(add_transaction_safe)
BOOST_CLBL_TRTS_SFINAE_MSG(add_transaction_safe, cannot_add_transaction_safe_to_this_type)
#ifndef BOOST_CLBL_TRTS_ENABLE_TRANSACTION_SAFE
template<typename T>
struct add_transaction_safe_t {
static_assert(std::is_same<T, detail::dummy>::value,
"transaction_safe not supported by this configuration.");
};
template<typename T>
struct add_transaction_safe {
include/boost/callable_traits/add_transaction_safe.hpp view on Meta::CPAN
``#include <boost/callable_traits/add_transaction_safe.hpp>``
[heading Definition]
*/
template<typename T>
using add_transaction_safe_t = //see below
//<-
detail::try_but_fail_if_invalid<
typename detail::traits<T>::add_transaction_safe,
cannot_add_transaction_safe_to_this_type>;
namespace detail {
template<typename T, typename = std::false_type>
struct add_transaction_safe_impl {};
template<typename T>
struct add_transaction_safe_impl <T, typename std::is_same<
add_transaction_safe_t<T>, detail::dummy>::type>
{
include/boost/callable_traits/apply_member_pointer.hpp view on Meta::CPAN
*/
#ifndef BOOST_CLBL_TRTS_APPLY_MEMBER_POINTER_HPP
#define BOOST_CLBL_TRTS_APPLY_MEMBER_POINTER_HPP
#include <boost/callable_traits/detail/core.hpp>
namespace boost { namespace callable_traits {
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(apply_member_pointer)
BOOST_CLBL_TRTS_SFINAE_MSG(apply_member_pointer, members_cannot_have_a_type_of_void)
BOOST_CLBL_TRTS_SFINAE_MSG(apply_member_pointer, second_template_argument_must_be_a_class_or_struct)
namespace detail {
template<typename T, typename C, bool = std::is_class<C>::value>
struct make_member_pointer;
template<typename T, typename C>
struct make_member_pointer<T, C, true> {
using type = typename std::remove_reference<T>::type C::*;
include/boost/callable_traits/apply_member_pointer.hpp view on Meta::CPAN
*/
template<typename T, typename C>
using apply_member_pointer_t = //see below
//<-
detail::sfinae_try<
detail::fallback_if_invalid<
typename detail::traits<T>::template apply_member_pointer<C>,
typename detail::make_member_pointer<T, C>::type>,
detail::fail_when_same<void, T, members_cannot_have_a_type_of_void>,
detail::fail_if<!std::is_class<C>::value,
second_template_argument_must_be_a_class_or_struct> >;
namespace detail {
template<typename T, typename C, typename = std::false_type>
struct apply_member_pointer_impl {};
template<typename T, typename C>
include/boost/callable_traits/args.hpp view on Meta::CPAN
``#include <boost/callable_traits/args.hpp>``
[heading Definition]
*/
template<typename T, template<class...> class Container = std::tuple>
using args_t = //see below
//<-
detail::try_but_fail_if_invalid<
typename detail::traits<
detail::shallow_decay<T>>::template expand_args<Container>,
cannot_expand_the_parameter_list_of_first_template_argument>;
namespace detail {
template<typename T, template<class...> class Container,
typename = std::false_type>
struct args_impl {};
template<typename T, template<class...> class Container>
struct args_impl <T, Container, typename std::is_same<
args_t<T, Container>, detail::dummy>::type>
include/boost/callable_traits/class_of.hpp view on Meta::CPAN
[heading Header]
``#include <boost/callable_traits/class_of.hpp>``
[heading Definition]
*/
template<typename T>
using class_of_t = //see below
//<-
detail::try_but_fail_if_invalid<
typename detail::traits<detail::shallow_decay<T>>::class_type,
type_is_not_a_member_pointer>;
namespace detail {
template<typename T, typename = std::false_type>
struct class_of_impl {};
template<typename T>
struct class_of_impl <T, typename std::is_same<
class_of_t<T>, detail::dummy>::type>
{
include/boost/callable_traits/detail/sfinae_errors.hpp view on Meta::CPAN
#define BOOST_CLBL_TRTS_SFINAE_MSG(origin, name) \
struct BOOST_CLBL_TRTS_PP_CAT(name, _ ){}; \
struct name : error::origin< \
BOOST_CLBL_TRTS_PP_CAT(name, _ )>{}; \
/**/
namespace boost { namespace callable_traits {
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(parameters)
BOOST_CLBL_TRTS_SFINAE_MSG(parameters, index_out_of_range_for_parameter_list)
BOOST_CLBL_TRTS_SFINAE_MSG(parameters, cannot_determine_parameters_for_this_type)
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(varargs)
BOOST_CLBL_TRTS_SFINAE_MSG(varargs, varargs_are_illegal_for_this_type)
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(member_qualifiers)
BOOST_CLBL_TRTS_SFINAE_MSG(member_qualifiers, member_qualifiers_are_illegal_for_this_type)
BOOST_CLBL_TRTS_SFINAE_MSG(member_qualifiers, this_compiler_doesnt_support_abominable_function_types)
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(transaction_safe_)
BOOST_CLBL_TRTS_SFINAE_MSG(transaction_safe_, transaction_safe_is_not_supported_by_this_configuration)
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(expand_args)
BOOST_CLBL_TRTS_SFINAE_MSG(expand_args, cannot_expand_the_parameter_list_of_first_template_argument)
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(member_pointer_required)
BOOST_CLBL_TRTS_SFINAE_MSG(member_pointer_required, type_is_not_a_member_pointer)
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(reference_error)
BOOST_CLBL_TRTS_SFINAE_MSG(reference_error, reference_type_not_supported_by_this_metafunction)
}} // namespace boost::callable_traits
#endif // #ifndef BOOST_CLBL_TRTS_SFINAE_ERRORS_HPP
include/boost/callable_traits/detail/unguarded/function_3.hpp view on Meta::CPAN
BOOST_CLBL_TRTS_NOEXCEPT_SPEC;
using qualifiers = default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>;
template<qualifier_flags Flags>
using set_qualifiers = set_function_qualifiers<Flags, is_transaction_safe::value,
is_noexcept::value, Return, Args...>;
#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
using add_member_lvalue_reference = abominable_functions_not_supported_on_this_compiler;
using add_member_rvalue_reference = abominable_functions_not_supported_on_this_compiler;
using add_member_const = abominable_functions_not_supported_on_this_compiler;
using add_member_volatile = abominable_functions_not_supported_on_this_compiler;
using add_member_cv = abominable_functions_not_supported_on_this_compiler;
#else
using add_member_lvalue_reference = set_qualifiers<
collapse_flags<qualifiers::q_flags, lref_>::value>;
using add_member_rvalue_reference = set_qualifiers<
collapse_flags<qualifiers::q_flags, rref_>::value>;
using add_member_const = set_qualifiers<qualifiers::q_flags | const_>;
include/boost/callable_traits/detail/unguarded/function_3.hpp view on Meta::CPAN
BOOST_CLBL_TRTS_NOEXCEPT_SPEC;
using qualifiers = default_callable_traits<dummy BOOST_CLBL_TRTS_INCLUDE_QUALIFIERS>;
template<qualifier_flags Flags>
using set_qualifiers = set_varargs_function_qualifiers<Flags, is_transaction_safe::value,
is_noexcept::value, Return, Args...>;
#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
using add_member_lvalue_reference = abominable_functions_not_supported_on_this_compiler;
using add_member_rvalue_reference = abominable_functions_not_supported_on_this_compiler;
using add_member_const = abominable_functions_not_supported_on_this_compiler;
using add_member_volatile = abominable_functions_not_supported_on_this_compiler;
using add_member_cv = abominable_functions_not_supported_on_this_compiler;
#else
using add_member_lvalue_reference = set_qualifiers<
collapse_flags<qualifiers::q_flags, lref_>::value>;
using add_member_rvalue_reference = set_qualifiers<
collapse_flags<qualifiers::q_flags, rref_>::value>;
using add_member_const = set_qualifiers<qualifiers::q_flags | const_>;
include/boost/callable_traits/detail/utility.hpp view on Meta::CPAN
struct pascal_tag{};
struct invalid_type { invalid_type() = delete; };
struct reference_error { reference_error() = delete; };
template<typename T>
using error_type = typename std::conditional<
std::is_reference<T>::value, reference_error, invalid_type>::type;
#ifdef BOOST_CLBL_TRTS_DISABLE_ABOMINABLE_FUNCTIONS
struct abominable_functions_not_supported_on_this_compiler{};
#endif
// used to convey "this type doesn't matter" in code
struct dummy {};
// used as return type in failed SFINAE tests
struct substitution_failure : std::false_type{};
template<bool Value>
using bool_type = std::integral_constant<bool, Value>;
include/boost/callable_traits/detail/utility.hpp view on Meta::CPAN
using add_member_pointer = T Class::*;
template<typename L, typename R, typename ErrorType>
using fail_when_same = fail_if<std::is_same<L, R>::value, ErrorType>;
template<typename T, typename ErrorType,
typename U = typename std::remove_reference<T>::type>
using try_but_fail_if_invalid = sfinae_try<T,
fail_when_same<U, invalid_type, ErrorType>,
fail_when_same<U, reference_error,
reference_type_not_supported_by_this_metafunction>>;
template<typename T, typename ErrorType,
typename U = typename std::remove_reference<T>::type,
bool is_reference_error = std::is_same<reference_error, U>::value>
using fail_if_invalid = fail_if<
std::is_same<U, invalid_type>::value || is_reference_error,
typename std::conditional<is_reference_error,
reference_type_not_supported_by_this_metafunction, ErrorType>::type>;
template<typename T, typename Fallback>
using fallback_if_invalid = typename std::conditional<
std::is_same<T, invalid_type>::value, Fallback, T>::type;
template<typename T, template<class> class Alias, typename U = Alias<T>>
struct force_sfinae {
using type = U;
};
include/boost/callable_traits/function_type.hpp view on Meta::CPAN
[heading Header]
``#include <boost/callable_traits/function_type.hpp>``
[heading Definition]
*/
template<typename T>
using function_type_t = //see below
//<-
detail::try_but_fail_if_invalid<typename detail::traits<
detail::shallow_decay<T>>::function_type,
cannot_determine_parameters_for_this_type>;
namespace detail {
template<typename T, typename = std::false_type>
struct function_type_impl {};
template<typename T>
struct function_type_impl <T, typename std::is_same<
function_type_t<T>, detail::dummy>::type>
{
include/boost/callable_traits/qualified_class_of.hpp view on Meta::CPAN
[heading Header]
``#include <boost/callable_traits/qualified_class_of.hpp>``
[heading Definition]
*/
template<typename T>
using qualified_class_of_t = //see below
//<-
detail::try_but_fail_if_invalid<
typename detail::traits<detail::shallow_decay<T>>::invoke_type,
type_is_not_a_member_pointer>;
namespace detail {
template<typename T, typename = std::false_type>
struct qualified_class_of_impl {};
template<typename T>
struct qualified_class_of_impl <T, typename std::is_same<
qualified_class_of_t<T>, detail::dummy>::type>
{
include/boost/callable_traits/remove_noexcept.hpp view on Meta::CPAN
*/
#ifndef BOOST_CLBL_TRTS_REMOVE_NOEXCEPT_HPP
#define BOOST_CLBL_TRTS_REMOVE_NOEXCEPT_HPP
#include <boost/callable_traits/detail/core.hpp>
namespace boost { namespace callable_traits {
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(remove_noexcept)
BOOST_CLBL_TRTS_SFINAE_MSG(remove_noexcept, cannot_remove_noexcept_from_this_type)
//[ remove_noexcept_hpp
/*`
[section:ref_remove_noexcept remove_noexcept]
[heading Header]
``#include <boost/callable_traits/remove_noexcept.hpp>``
[heading Definition]
*/
template<typename T>
using remove_noexcept_t = //see below
//<-
detail::try_but_fail_if_invalid<
typename detail::traits<T>::remove_noexcept,
cannot_remove_noexcept_from_this_type>;
namespace detail {
template<typename T, typename = std::false_type>
struct remove_noexcept_impl {};
template<typename T>
struct remove_noexcept_impl <T, typename std::is_same<
remove_noexcept_t<T>, detail::dummy>::type>
{
include/boost/callable_traits/remove_transaction_safe.hpp view on Meta::CPAN
*/
#ifndef BOOST_CLBL_TRTS_REMOVE_TRANSACTION_SAFE_HPP
#define BOOST_CLBL_TRTS_REMOVE_TRANSACTION_SAFE_HPP
#include <boost/callable_traits/detail/core.hpp>
namespace boost { namespace callable_traits {
BOOST_CLBL_TRTS_DEFINE_SFINAE_ERROR_ORIGIN(remove_transaction_safe)
BOOST_CLBL_TRTS_SFINAE_MSG(remove_transaction_safe, cannot_remove_transaction_safe_from_this_type)
//[ remove_transaction_safe_hpp
/*`
[section:ref_remove_transaction_safe remove_transaction_safe]
[heading Header]
``#include <boost/callable_traits/remove_transaction_safe.hpp>``
[heading Definition]
*/
template<typename T>
using remove_transaction_safe_t = //see below
//<-
detail::try_but_fail_if_invalid<
typename detail::traits<T>::remove_transaction_safe,
cannot_remove_transaction_safe_from_this_type>;
namespace detail {
template<typename T, typename = std::false_type>
struct remove_transaction_safe_impl {};
template<typename T>
struct remove_transaction_safe_impl <T, typename std::is_same<
remove_transaction_safe_t<T>, detail::dummy>::type>
{
include/boost/container/allocator_traits.hpp view on Meta::CPAN
template<class T>
struct is_std_allocator< std::allocator<T> >
{ static const bool value = true; };
template<class T>
struct is_std_allocator< small_vector_allocator< std::allocator<T> > >
{ static const bool value = true; };
template<class Allocator>
struct is_not_std_allocator
{ static const bool value = !is_std_allocator<Allocator>::value; };
BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(pointer)
BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(const_pointer)
BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(reference)
BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(const_reference)
BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(void_pointer)
BOOST_INTRUSIVE_INSTANTIATE_EVAL_DEFAULT_TYPE_TMPLT(const_void_pointer)
BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(size_type)
BOOST_INTRUSIVE_INSTANTIATE_DEFAULT_TYPE_TMPLT(propagate_on_container_copy_assignment)
include/boost/container/allocator_traits.hpp view on Meta::CPAN
return allocator_traits::priv_select_on_container_copy_construction(flag, a);
}
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) || defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
//! <b>Effects</b>: calls <code>a.construct(p, std::forward<Args>(args)...)</code> if that call is well-formed;
//! otherwise, invokes <code>`placement new` (static_cast<void*>(p)) T(std::forward<Args>(args)...)</code>
template <class T, class ...Args>
BOOST_CONTAINER_FORCEINLINE static void construct(Allocator & a, T* p, BOOST_FWD_REF(Args)... args)
{
static const bool value = ::boost::move_detail::and_
< dtl::is_not_std_allocator<Allocator>
, boost::container::dtl::has_member_function_callable_with_construct
< Allocator, T*, Args... >
>::value;
dtl::bool_<value> flag;
allocator_traits::priv_construct(flag, a, p, ::boost::forward<Args>(args)...);
}
#endif
//! <b>Returns</b>: <code>a.storage_is_unpropagable(p)</code> if is_partially_propagable::value is true; otherwise,
//! <code>false</code>.
include/boost/container/allocator_traits.hpp view on Meta::CPAN
BOOST_CONTAINER_FORCEINLINE static void priv_construct(dtl::false_type, Allocator &, T *p, BOOST_FWD_REF(Args) ...args)
{ ::new((void*)p, boost_container_new_t()) T(::boost::forward<Args>(args)...); }
#else // #if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
public:
#define BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL(N) \
template<class T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
BOOST_CONTAINER_FORCEINLINE static void construct(Allocator &a, T *p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
{\
static const bool value = ::boost::move_detail::and_ \
< dtl::is_not_std_allocator<Allocator> \
, boost::container::dtl::has_member_function_callable_with_construct \
< Allocator, T* BOOST_MOVE_I##N BOOST_MOVE_FWD_T##N > \
>::value; \
dtl::bool_<value> flag;\
(priv_construct)(flag, a, p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
}\
//
BOOST_MOVE_ITERATE_0TO8(BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL)
#undef BOOST_CONTAINER_ALLOCATOR_TRAITS_CONSTRUCT_IMPL
include/boost/container/deque.hpp view on Meta::CPAN
//! <b>Throws</b>: If memory allocation throws or
//! T's constructor from dereferencing InIt throws.
//!
//! <b>Complexity</b>: Linear to n.
template <class InIt>
void assign(InIt first, InIt last
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
, typename dtl::disable_if_or
< void
, dtl::is_convertible<InIt, size_type>
, dtl::is_not_input_iterator<InIt>
>::type * = 0
#endif
)
{
iterator cur = this->begin();
for ( ; first != last && cur != end(); ++cur, ++first){
*cur = *first;
}
if (first == last){
this->erase(cur, this->cend());
include/boost/container/deque.hpp view on Meta::CPAN
//! <b>Throws</b>: If memory allocation throws, T's constructor from a
//! dereferenced InIt throws or T's copy constructor throws.
//!
//! <b>Complexity</b>: Linear to distance [first, last).
template <class InIt>
iterator insert(const_iterator pos, InIt first, InIt last
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
, typename dtl::disable_if_or
< void
, dtl::is_convertible<InIt, size_type>
, dtl::is_not_input_iterator<InIt>
>::type * = 0
#endif
)
{
BOOST_ASSERT(this->priv_in_range_or_end(pos));
size_type n = 0;
iterator it(pos.unconst());
for(;first != last; ++first, ++n){
it = this->emplace(it, *first);
++it;
include/boost/container/detail/dispatch_uses_allocator.hpp view on Meta::CPAN
#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
template < typename ConstructAlloc
, typename ArgAlloc
, typename T
, class ...Args
>
inline typename dtl::enable_if_and
< void
, dtl::is_not_pair<T>
, dtl::not_< uses_allocator<T, ArgAlloc> >
>::type dispatch_uses_allocator
( ConstructAlloc & construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p, BOOST_FWD_REF(Args)...args)
{
(void)arg_alloc;
allocator_traits<ConstructAlloc>::construct(construct_alloc, p, ::boost::forward<Args>(args)...);
}
// allocator_arg_t
template < typename ConstructAlloc
, typename ArgAlloc
, typename T
, class ...Args
>
inline typename dtl::enable_if_and
< void
, dtl::is_not_pair<T>
, uses_allocator<T, ArgAlloc>
, is_constructible_with_allocator_prefix<T, ArgAlloc, Args...>
>::type dispatch_uses_allocator
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p, BOOST_FWD_REF(Args) ...args)
{
allocator_traits<ConstructAlloc>::construct
( construct_alloc, p, allocator_arg
, ::boost::forward<ArgAlloc>(arg_alloc), ::boost::forward<Args>(args)...);
}
// allocator suffix
template < typename ConstructAlloc
, typename ArgAlloc
, typename T
, class ...Args
>
inline typename dtl::enable_if_and
< void
, dtl::is_not_pair<T>
, uses_allocator<T, ArgAlloc>
, dtl::not_<is_constructible_with_allocator_prefix<T, ArgAlloc, Args...> >
>::type dispatch_uses_allocator
( ConstructAlloc& construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p, BOOST_FWD_REF(Args)...args)
{
allocator_traits<ConstructAlloc>::construct
(construct_alloc, p, ::boost::forward<Args>(args)..., ::boost::forward<ArgAlloc>(arg_alloc));
}
#else //#if !defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES)
#define BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE(N) \
template <typename ConstructAlloc, typename ArgAlloc, typename T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
inline typename dtl::enable_if_and\
< void\
, dtl::is_not_pair<T>\
, dtl::not_<uses_allocator<T, ArgAlloc> >\
>::type\
dispatch_uses_allocator\
(ConstructAlloc &construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
{\
(void)arg_alloc;\
allocator_traits<ConstructAlloc>::construct(construct_alloc, p BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
}\
//
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE)
#undef BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE
#define BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE(N) \
template < typename ConstructAlloc, typename ArgAlloc, typename T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
inline typename dtl::enable_if_and\
< void\
, dtl::is_not_pair<T>\
, uses_allocator<T, ArgAlloc>\
, is_constructible_with_allocator_prefix<T, ArgAlloc BOOST_MOVE_I##N BOOST_MOVE_TARG##N>\
>::type\
dispatch_uses_allocator\
(ConstructAlloc& construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
{\
allocator_traits<ConstructAlloc>::construct\
(construct_alloc, p, allocator_arg, ::boost::forward<ArgAlloc>(arg_alloc) BOOST_MOVE_I##N BOOST_MOVE_FWD##N);\
}\
//
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE)
#undef BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE
#define BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE(N) \
template < typename ConstructAlloc, typename ArgAlloc, typename T BOOST_MOVE_I##N BOOST_MOVE_CLASS##N >\
inline typename dtl::enable_if_and\
< void\
, dtl::is_not_pair<T>\
, uses_allocator<T, ArgAlloc>\
, dtl::not_<is_constructible_with_allocator_prefix<T, ArgAlloc BOOST_MOVE_I##N BOOST_MOVE_TARG##N> >\
>::type\
dispatch_uses_allocator\
(ConstructAlloc& construct_alloc, BOOST_FWD_REF(ArgAlloc) arg_alloc, T* p BOOST_MOVE_I##N BOOST_MOVE_UREF##N)\
{\
allocator_traits<ConstructAlloc>::construct\
(construct_alloc, p BOOST_MOVE_I##N BOOST_MOVE_FWD##N, ::boost::forward<ArgAlloc>(arg_alloc));\
}\
//
BOOST_MOVE_ITERATE_0TO9(BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE)
#undef BOOST_CONTAINER_SCOPED_ALLOCATOR_DISPATCH_USES_ALLOCATOR_CODE
include/boost/container/detail/dispatch_uses_allocator.hpp view on Meta::CPAN
, BOOST_FWD_REF(ArgAlloc) arg_alloc
, Pair* p, Pair2& x)
{ (dispatch_uses_allocator)(construct_alloc, arg_alloc, p, x.first, x.second); }
template < typename ConstructAlloc
, typename ArgAlloc
, class Pair, class Pair2>
typename dtl::enable_if_and
< void
, dtl::is_pair<Pair>
, dtl::not_<boost::move_detail::is_reference<Pair2> > >::type //This is needed for MSVC10 and ambiguous overloads
dispatch_uses_allocator
(ConstructAlloc & construct_alloc
, BOOST_FWD_REF(ArgAlloc) arg_alloc
, Pair* p, BOOST_RV_REF_BEG Pair2 BOOST_RV_REF_END x)
{ (dispatch_uses_allocator)(construct_alloc, arg_alloc, p, ::boost::move(x.first), ::boost::move(x.second)); }
//piecewise construction from boost::tuple
#define BOOST_DISPATCH_USES_ALLOCATOR_PIECEWISE_CONSTRUCT_BOOST_TUPLE_CODE(N,M)\
template< typename ConstructAlloc, typename ArgAlloc, class Pair \
include/boost/container/detail/iterators.hpp view on Meta::CPAN
static const bool value = is_same<typename T::iterator_category, std::input_iterator_tag>::value;
};
template<class T>
struct is_input_iterator<T, false>
{
static const bool value = false;
};
template<class T>
struct is_not_input_iterator
{
static const bool value = !is_input_iterator<T>::value;
};
template<class T, bool = has_iterator_category<T>::value >
struct is_forward_iterator
{
static const bool value = is_same<typename T::iterator_category, std::forward_iterator_tag>::value;
};
include/boost/container/detail/mpl.hpp view on Meta::CPAN
using boost::move_detail::true_;
using boost::move_detail::false_;
using boost::move_detail::yes_type;
using boost::move_detail::no_type;
using boost::move_detail::bool_;
using boost::move_detail::true_;
using boost::move_detail::false_;
using boost::move_detail::unvoid_ref;
using boost::move_detail::and_;
using boost::move_detail::or_;
using boost::move_detail::not_;
using boost::move_detail::enable_if_and;
using boost::move_detail::disable_if_and;
using boost::move_detail::enable_if_or;
using boost::move_detail::disable_if_or;
template <class FirstType>
struct select1st
{
typedef FirstType type;
include/boost/container/detail/pair.hpp view on Meta::CPAN
static const bool value = true;
};
template <class T1, class T2>
struct is_pair< std::pair<T1, T2> >
{
static const bool value = true;
};
template <class T>
struct is_not_pair
{
static const bool value = !is_pair<T>::value;
};
template <class T>
struct is_std_pair
{
static const bool value = false;
};
include/boost/container/pmr/resource_adaptor.hpp view on Meta::CPAN
: public memory_resource
#ifndef BOOST_CONTAINER_DOXYGEN_INVOKED
, private ::boost::intrusive::detail::ebo_functor_holder<Allocator>
#endif
{
#ifdef BOOST_CONTAINER_DOXYGEN_INVOKED
Allocator m_alloc;
#else
BOOST_COPYABLE_AND_MOVABLE(resource_adaptor_imp)
typedef ::boost::intrusive::detail::ebo_functor_holder<Allocator> ebo_alloc_t;
void static_assert_if_not_char_allocator() const
{
//This class can only be used with allocators type char
BOOST_STATIC_ASSERT((dtl::is_same<typename Allocator::value_type, char>::value));
}
#endif
public:
typedef Allocator allocator_type;
//! <b>Effects</b>: Default constructs
//! m_alloc.
resource_adaptor_imp()
{ this->static_assert_if_not_char_allocator(); }
//! <b>Effects</b>: Copy constructs
//! m_alloc.
resource_adaptor_imp(const resource_adaptor_imp &other)
: ebo_alloc_t(other.ebo_alloc_t::get())
{}
//! <b>Effects</b>: Move constructs
//! m_alloc.
resource_adaptor_imp(BOOST_RV_REF(resource_adaptor_imp) other)
: ebo_alloc_t(::boost::move(other.get()))
{}
//! <b>Effects</b>: Initializes m_alloc with
//! a2.
explicit resource_adaptor_imp(const Allocator& a2)
: ebo_alloc_t(a2)
{ this->static_assert_if_not_char_allocator(); }
//! <b>Effects</b>: Initializes m_alloc with
//! a2.
explicit resource_adaptor_imp(BOOST_RV_REF(Allocator) a2)
: ebo_alloc_t(::boost::move(a2))
{ this->static_assert_if_not_char_allocator(); }
//! <b>Effects</b>: Copy assigns
//! m_alloc.
resource_adaptor_imp& operator=(BOOST_COPY_ASSIGN_REF(resource_adaptor_imp) other)
{ this->ebo_alloc_t::get() = other.ebo_alloc_t::get(); return *this; }
//! <b>Effects</b>: Move assigns
//! m_alloc.
resource_adaptor_imp& operator=(BOOST_RV_REF(resource_adaptor_imp) other)
{ this->ebo_alloc_t::get() = ::boost::move(other.ebo_alloc_t::get()); return *this; }
include/boost/container/stable_vector.hpp view on Meta::CPAN
//!
//! <b>Complexity</b>: Linear to distance [first, last).
template <class InputIterator>
iterator insert(const_iterator p, InputIterator first, InputIterator last
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
//Put this as argument instead of the return type as old GCC's like 3.4
//detect this and the next disable_if_or as overloads
, typename dtl::disable_if_or
< void
, dtl::is_convertible<InputIterator, size_type>
, dtl::is_not_input_iterator<InputIterator>
>::type* = 0
#endif
)
{
BOOST_ASSERT(this->priv_in_range_or_end(p));
STABLE_VECTOR_CHECK_INVARIANT;
const size_type pos_n = p - this->cbegin();
for(; first != last; ++first){
this->emplace(p, *first);
}
include/boost/container/string.hpp view on Meta::CPAN
//!
//! <b>Effects</b>: Equivalent to insert(p - begin(), basic_string(first, last)).
//!
//! <b>Returns</b>: an iterator to the first inserted element or p if first == last.
template <class InputIter>
iterator insert(const_iterator p, InputIter first, InputIter last
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
, typename dtl::disable_if_or
< void
, dtl::is_convertible<InputIter, size_type>
, dtl::is_not_input_iterator<InputIter>
>::type * = 0
#endif
)
{
const size_type n_pos = p - this->cbegin();
for ( ; first != last; ++first, ++p) {
p = this->insert(p, *first);
}
return this->begin() + n_pos;
}
include/boost/container/string.hpp view on Meta::CPAN
this->insert(i2, j1, j2);
return *this;
}
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
template <class ForwardIter>
basic_string& replace(const_iterator i1, const_iterator i2, ForwardIter j1, ForwardIter j2
, typename dtl::disable_if_or
< void
, dtl::is_convertible<ForwardIter, size_type>
, dtl::is_not_input_iterator<ForwardIter>
>::type * = 0
)
{
difference_type n = boost::container::iterator_distance(j1, j2);
const difference_type len = i2 - i1;
if (len >= n) {
this->priv_copy(j1, j2, const_cast<CharT*>(boost::movelib::to_raw_pointer(i1)));
this->erase(i1 + n, i2);
}
else {
include/boost/container/string.hpp view on Meta::CPAN
{ return rfind(c, pos); }
//! <b>Effects</b>: Determines the lowest position xpos, if possible, such that
//! both of the following conditions obtain:
//! a) pos <= xpos and xpos < size(); b) traits::eq(at(xpos), str.at(I)) for no
//! element I of the string controlled by str.
//!
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
size_type find_first_not_of(const basic_string& str, size_type pos = 0) const
{ return find_first_not_of(str.c_str(), pos, str.size()); }
//! <b>Effects</b>: Determines the lowest position xpos, if possible, such that
//! both of the following conditions obtain:
//! a) pos <= xpos and xpos < size(); b) traits::eq(at(xpos), sv.at(I)) for no
//! element I of the string controlled by sv.
//!
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
template<template <class, class> class BasicStringView>
size_type find_first_not_of(BasicStringView<CharT, Traits> sv, size_type pos = 0) const
{ return find_first_not_of(sv.data(), pos, sv.size()); }
//! <b>Requires</b>: s points to an array of at least traits::length(s) + 1 elements of CharT.
//!
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_first_not_of(basic_string(s, n), pos).
size_type find_first_not_of(const CharT* s, size_type pos, size_type n) const
{
if (pos > this->size())
return npos;
else {
const pointer addr = this->priv_addr();
const pointer finish = addr + this->priv_size();
const const_iterator result = boost::container::find_if
(addr + pos, finish, Not_within_traits<Traits>(s, s + n));
return result != finish ? result - addr : npos;
}
}
//! <b>Requires</b>: s points to an array of at least traits::length(s) + 1 elements of CharT.
//!
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_first_not_of(basic_string(s), pos).
size_type find_first_not_of(const CharT* s, size_type pos = 0) const
{ return find_first_not_of(s, pos, Traits::length(s)); }
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_first_not_of(basic_string(1, c), pos).
size_type find_first_not_of(CharT c, size_type pos = 0) const
{
if (pos > this->size())
return npos;
else {
const pointer addr = this->priv_addr();
const pointer finish = addr + this->priv_size();
const const_iterator result
= boost::container::find_if(addr + pos, finish,
boost::container::not1(boost::container::bind2nd(Eq_traits<Traits>(), c)));
return result != finish ? result - begin() : npos;
}
}
//! <b>Effects</b>: Determines the highest position xpos, if possible, such that
//! both of the following conditions obtain: a) xpos <= pos and xpos < size();
//! b) traits::eq(at(xpos), str.at(I)) for no element I of the string controlled by str.
//!
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
size_type find_last_not_of(const basic_string& str, size_type pos = npos) const
{ return find_last_not_of(str.c_str(), pos, str.size()); }
//! <b>Effects</b>: Determines the highest position xpos, if possible, such that
//! both of the following conditions obtain: a) xpos <= pos and xpos < size();
//! b) traits::eq(at(xpos), sv.at(I)) for no element I of the string controlled by sv.
//!
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: xpos if the function can determine such a value for xpos. Otherwise, returns npos.
template<template <class, class> class BasicStringView>
size_type find_last_not_of(BasicStringView<CharT, Traits> sv, size_type pos = npos) const
{ return find_last_not_of(sv.data(), pos, sv.size()); }
//! <b>Requires</b>: s points to an array of at least n elements of CharT.
//!
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_last_not_of(basic_string(s, n), pos).
size_type find_last_not_of(const CharT* s, size_type pos, size_type n) const
{
const size_type len = this->size();
if (len < 1)
return npos;
else {
const const_iterator last = begin() + dtl::min_value(len - 1, pos) + 1;
const const_reverse_iterator rresult =
boost::container::find_if(const_reverse_iterator(last), rend(),
Not_within_traits<Traits>(s, s + n));
return rresult != rend() ? (rresult.base() - 1) - begin() : npos;
}
}
//! <b>Requires</b>: s points to an array of at least traits::length(s) + 1 elements of CharT.
//!
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_last_not_of(basic_string(s), pos).
size_type find_last_not_of(const CharT* s, size_type pos = npos) const
{ return find_last_not_of(s, pos, Traits::length(s)); }
//! <b>Throws</b>: Nothing
//!
//! <b>Returns</b>: find_last_not_of(basic_string(1, c), pos).
size_type find_last_not_of(CharT c, size_type pos = npos) const
{
const size_type len = this->size();
if (len < 1)
return npos;
else {
const const_iterator last = begin() + dtl::min_value(len - 1, pos) + 1;
const const_reverse_iterator rresult =
boost::container::find_if(const_reverse_iterator(last), rend(),
boost::container::not1(boost::container::bind2nd(Eq_traits<Traits>(), c)));
include/boost/container/vector.hpp view on Meta::CPAN
//!
//! <b>Complexity</b>: Linear to n.
template <class InIt>
void assign(InIt first, InIt last
//Input iterators or version 0 allocator
BOOST_CONTAINER_DOCIGN(BOOST_MOVE_I typename dtl::disable_if_or
< void
BOOST_MOVE_I dtl::is_convertible<InIt BOOST_MOVE_I size_type>
BOOST_MOVE_I dtl::and_
< dtl::is_different<alloc_version BOOST_MOVE_I version_0>
BOOST_MOVE_I dtl::is_not_input_iterator<InIt>
>
>::type * = 0)
)
{
//Overwrite all elements we can from [first, last)
iterator cur = this->begin();
const iterator end_it = this->end();
for ( ; first != last && cur != end_it; ++cur, ++first){
*cur = *first;
}
include/boost/container/vector.hpp view on Meta::CPAN
//! <b>Throws</b>: If memory allocation throws, T's constructor from a
//! dereferenced InpIt throws or T's copy/move constructor/assignment throws.
//!
//! <b>Complexity</b>: Linear to boost::container::iterator_distance [first, last).
template <class InIt>
iterator insert(const_iterator pos, InIt first, InIt last
#if !defined(BOOST_CONTAINER_DOXYGEN_INVOKED)
, typename dtl::disable_if_or
< void
, dtl::is_convertible<InIt, size_type>
, dtl::is_not_input_iterator<InIt>
>::type * = 0
#endif
)
{
BOOST_ASSERT(this->priv_in_range_or_end(pos));
const size_type n_pos = pos - this->cbegin();
iterator it(vector_iterator_get_ptr(pos));
for(;first != last; ++first){
it = this->emplace(it, *first);
++it;
include/boost/container_hash/detail/float_functions.hpp view on Meta::CPAN
// library implementations don't support this. On some that don't, the C99
// float functions (frexpf, frexpl, etc.) are available.
//
// The following tries to automatically detect which are available.
namespace boost {
namespace hash_detail {
// Returned by dummy versions of the float functions.
struct not_found {
// Implicitly convertible to float and long double in order to avoid
// a compile error when the dummy float functions are used.
inline operator float() const { return 0; }
inline operator long double() const { return 0; }
};
// A type for detecting the return type of functions.
template <typename T> struct is;
template <> struct is<float> { char x[10]; };
template <> struct is<double> { char x[20]; };
template <> struct is<long double> { char x[30]; };
template <> struct is<boost::hash_detail::not_found> { char x[40]; };
// Used to convert the return type of a function to a type for sizeof.
template <typename T> is<T> float_type(T);
// call_ldexp
//
// This will get specialized for float and long double
template <typename Float> struct call_ldexp
include/boost/container_hash/detail/float_functions.hpp view on Meta::CPAN
}
// A namespace for dummy functions to detect when the actual function we want
// isn't available. ldexpl, ldexpf etc. might be added tby the macros below.
//
// AFAICT these have to be outside of the boost namespace, as if they're in
// the boost namespace they'll always be preferable to any other function
// (since the arguments are built in types, ADL can't be used).
namespace boost_hash_detect_float_functions {
template <class Float> boost::hash_detail::not_found ldexp(Float, int);
template <class Float> boost::hash_detail::not_found frexp(Float, int*);
}
// Macros for generating specializations of call_ldexp and call_frexp.
//
// check_cpp and check_c99 check if the C++ or C99 functions are available.
//
// Then the call_* functions select an appropriate implementation.
//
// I used c99_func in a few places just to get a unique name.
//
// Important: when using 'using namespace' at namespace level, include as
// little as possible in that namespace, as Visual C++ has an odd bug which
// can cause the namespace to be imported at the global level. This seems to
// happen mainly when there's a template in the same namesapce.
#define BOOST_HASH_CALL_FLOAT_FUNC(cpp_func, c99_func, type1, type2) \
namespace boost_hash_detect_float_functions { \
template <class Float> \
boost::hash_detail::not_found c99_func(Float, type2); \
} \
\
namespace boost { \
namespace hash_detail { \
namespace c99_func##_detect { \
using namespace std; \
using namespace boost_hash_detect_float_functions; \
\
struct check { \
static type1 x; \
include/boost/core/enable_if.hpp view on Meta::CPAN
} // namespace boost
#else
namespace boost {
namespace detail { typedef void enable_if_default_T; }
template <typename T>
struct enable_if_does_not_work_on_this_compiler;
template<typename T, typename R=void>
struct enable_if_has_type : enable_if_does_not_work_on_this_compiler<T>
{ };
template <bool B, class T = detail::enable_if_default_T>
struct enable_if_c : enable_if_does_not_work_on_this_compiler<T>
{ };
template <bool B, class T = detail::enable_if_default_T>
struct disable_if_c : enable_if_does_not_work_on_this_compiler<T>
{ };
template <bool B, class T = detail::enable_if_default_T>
struct lazy_enable_if_c : enable_if_does_not_work_on_this_compiler<T>
{ };
template <bool B, class T = detail::enable_if_default_T>
struct lazy_disable_if_c : enable_if_does_not_work_on_this_compiler<T>
{ };
template <class Cond, class T = detail::enable_if_default_T>
struct enable_if : enable_if_does_not_work_on_this_compiler<T>
{ };
template <class Cond, class T = detail::enable_if_default_T>
struct disable_if : enable_if_does_not_work_on_this_compiler<T>
{ };
template <class Cond, class T = detail::enable_if_default_T>
struct lazy_enable_if : enable_if_does_not_work_on_this_compiler<T>
{ };
template <class Cond, class T = detail::enable_if_default_T>
struct lazy_disable_if : enable_if_does_not_work_on_this_compiler<T>
{ };
} // namespace boost
#endif // BOOST_NO_SFINAE
#endif