Alien-boost-mini

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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



( run in 0.897 second using v1.01-cache-2.11-cpan-cc502c75498 )