MPL names/directory structure refactoring

[SVN r17651]
This commit is contained in:
Aleksey Gurtovoy
2003-02-25 23:11:41 +00:00
parent f21cd2bd51
commit e98c65986e
137 changed files with 2773 additions and 868 deletions

View File

@@ -29,7 +29,7 @@ namespace fsm {
namespace aux { namespace aux {
namespace mpl = boost::mpl; namespace mpl = boost::mpl;
using namespace mpl::placeholder; using namespace mpl::placeholders;
template< typename Transition > template< typename Transition >
struct STT_void_row_impl struct STT_void_row_impl

View File

@@ -15,13 +15,13 @@
// without express or implied warranty. // without express or implied warranty.
#include "boost/mpl/inherit_linearly.hpp" #include "boost/mpl/inherit_linearly.hpp"
#include "boost/mpl/int_c.hpp" #include "boost/mpl/int.hpp"
#include "boost/mpl/list.hpp" #include "boost/mpl/list.hpp"
#include <iostream> #include <iostream>
namespace mpl = boost::mpl; namespace mpl = boost::mpl;
using namespace mpl::placeholder; using namespace mpl::placeholders;
template< typename Base, typename T > template< typename Base, typename T >
struct tuple_part struct tuple_part
@@ -36,7 +36,7 @@ struct tuple_part
struct empty_tuple struct empty_tuple
{ {
typedef mpl::int_c<-1> index; typedef mpl::int_<-1> index;
}; };
@@ -51,14 +51,14 @@ int main()
{ {
my_tuple t; my_tuple t;
field(t, mpl::int_c<0>()) = -1; field(t, mpl::int_<0>()) = -1;
field(t, mpl::int_c<1>()) = "text"; field(t, mpl::int_<1>()) = "text";
field(t, mpl::int_c<2>()) = false; field(t, mpl::int_<2>()) = false;
std::cout std::cout
<< field(t, mpl::int_c<0>()) << '\n' << field(t, mpl::int_<0>()) << '\n'
<< field(t, mpl::int_c<1>()) << '\n' << field(t, mpl::int_<1>()) << '\n'
<< field(t, mpl::int_c<2>()) << '\n' << field(t, mpl::int_<2>()) << '\n'
; ;
return 0; return 0;

View File

@@ -21,7 +21,7 @@
#include <iostream> #include <iostream>
namespace mpl = boost::mpl; namespace mpl = boost::mpl;
using namespace mpl::placeholder; using namespace mpl::placeholders;
template< typename T > template< typename T >
struct tuple_field struct tuple_field

View File

@@ -14,12 +14,12 @@
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
#include "boost/mpl/arithmetic/multiplies.hpp" #include "boost/mpl/multiplies.hpp"
#include "boost/mpl/list.hpp" #include "boost/mpl/list.hpp"
#include "boost/mpl/lower_bound.hpp" #include "boost/mpl/lower_bound.hpp"
#include "boost/mpl/transform_view.hpp" #include "boost/mpl/transform_view.hpp"
#include "boost/mpl/sizeof.hpp" #include "boost/mpl/sizeof.hpp"
#include "boost/mpl/int_c.hpp" #include "boost/mpl/int.hpp"
#include "boost/mpl/identity.hpp" #include "boost/mpl/identity.hpp"
#include "boost/mpl/base.hpp" #include "boost/mpl/base.hpp"
#include "boost/mpl/apply_if.hpp" #include "boost/mpl/apply_if.hpp"
@@ -28,7 +28,7 @@
#include "boost/mpl/assert_is_same.hpp" #include "boost/mpl/assert_is_same.hpp"
namespace mpl = boost::mpl; namespace mpl = boost::mpl;
using namespace mpl::placeholder; using namespace mpl::placeholders;
template< int bit_size > template< int bit_size >
class big_int class big_int
@@ -42,9 +42,9 @@ struct integer
typedef mpl::list<char,short,int,long> builtins_; typedef mpl::list<char,short,int,long> builtins_;
typedef typename mpl::base< typename mpl::lower_bound< typedef typename mpl::base< typename mpl::lower_bound<
mpl::transform_view< builtins_ mpl::transform_view< builtins_
, mpl::multiplies< mpl::sizeof_<_1>, mpl::int_c<8> > , mpl::multiplies< mpl::sizeof_<_1>, mpl::int_<8> >
> >
, mpl::int_c<bit_size> , mpl::int_<bit_size>
>::type >::type iter_; >::type >::type iter_;
typedef typename mpl::end<builtins_>::type last_; typedef typename mpl::end<builtins_>::type last_;

View File

@@ -16,11 +16,11 @@
#include "boost/mpl/v2_1.hpp" #include "boost/mpl/v2_1.hpp"
#include "boost/mpl/logical/not.hpp" #include "boost/mpl/not.hpp"
#include "boost/mpl/logical/or.hpp" #include "boost/mpl/or.hpp"
#include "boost/mpl/comparison/less.hpp" #include "boost/mpl/less.hpp"
#include "boost/mpl/comparison/equal_to.hpp" #include "boost/mpl/equal_to.hpp"
#include "boost/mpl/arithmetic/multiplies.hpp" #include "boost/mpl/multiplies.hpp"
#include "boost/mpl/prior.hpp" #include "boost/mpl/prior.hpp"
#include "boost/mpl/find_if.hpp" #include "boost/mpl/find_if.hpp"
#include "boost/mpl/count_if.hpp" #include "boost/mpl/count_if.hpp"
@@ -30,7 +30,7 @@
#include "boost/static_assert.hpp" #include "boost/static_assert.hpp"
namespace mpl = boost::mpl; namespace mpl = boost::mpl;
using namespace mpl::placeholder; using namespace mpl::placeholders;
using namespace mpl::v2_1; using namespace mpl::v2_1;

View File

@@ -17,8 +17,8 @@
#ifndef BOOST_MPL_ADVANCE_HPP_INCLUDED #ifndef BOOST_MPL_ADVANCE_HPP_INCLUDED
#define BOOST_MPL_ADVANCE_HPP_INCLUDED #define BOOST_MPL_ADVANCE_HPP_INCLUDED
#include "boost/mpl/arithmetic/negate.hpp" #include "boost/mpl/negate.hpp"
#include "boost/mpl/comparison/less.hpp" #include "boost/mpl/less.hpp"
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/if.hpp" #include "boost/mpl/if.hpp"
#include "boost/mpl/iterator_tag.hpp" #include "boost/mpl/iterator_tag.hpp"

42
include/boost/mpl/and.hpp Normal file
View File

@@ -0,0 +1,42 @@
#ifndef BOOST_MPL_AND_HPP_INCLUDED
#define BOOST_MPL_AND_HPP_INCLUDED
// + file: boost/mpl/and.hpp
// + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#include "boost/mpl/aux_/config/use_preprocessed.hpp"
#if !defined(BOOST_MPL_NO_PREPROCESSED_HEADERS) \
&& !defined(BOOST_MPL_PREPROCESSING_MODE)
# include "boost/mpl/bool.hpp"
# include "boost/mpl/aux_/nested_type_wknd.hpp"
# include "boost/mpl/aux_/void_spec.hpp"
# include "boost/mpl/aux_/lambda_support.hpp"
# define BOOST_MPL_PREPROCESSED_HEADER and.hpp
# include "boost/mpl/aux_/include_preprocessed.hpp"
#else
# define AUX_LOGICAL_OP_NAME and_
# define AUX_LOGICAL_OP_VALUE1 false
# define AUX_LOGICAL_OP_VALUE2 true
# include "boost/mpl/aux_/logical_op.hpp"
#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS
#endif // BOOST_MPL_AND_HPP_INCLUDED

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/arithmetic.hpp header file #ifndef BOOST_MPL_ARITHMETIC_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_ARITHMETIC_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/arithmetic.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,15 +15,14 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#ifndef BOOST_MPL_ARITHMETIC_HPP_INCLUDED #include "boost/mpl/plus.hpp"
#define BOOST_MPL_ARITHMETIC_HPP_INCLUDED #include "boost/mpl/minus.hpp"
#include "boost/mpl/multiplies.hpp"
#include "boost/mpl/arithmetic/plus.hpp" #include "boost/mpl/divides.hpp"
#include "boost/mpl/arithmetic/minus.hpp" #include "boost/mpl/modulus.hpp"
#include "boost/mpl/arithmetic/multiplies.hpp" #include "boost/mpl/negate.hpp"
#include "boost/mpl/arithmetic/divides.hpp"
#include "boost/mpl/arithmetic/modulus.hpp"
#include "boost/mpl/arithmetic/negate.hpp"
#endif // BOOST_MPL_ARITHMETIC_HPP_INCLUDED #endif // BOOST_MPL_ARITHMETIC_HPP_INCLUDED

View File

@@ -22,7 +22,7 @@
#if defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \ #if defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \
|| defined(BOOST_MSVC) && BOOST_MSVC < 1300 || defined(BOOST_MSVC) && BOOST_MSVC < 1300
# include "boost/mpl/bool_c.hpp" # include "boost/mpl/bool.hpp"
namespace boost { namespace mpl { namespace aux { namespace boost { namespace mpl { namespace aux {
@@ -34,7 +34,7 @@ struct bool_value_wknd
template<> template<>
struct bool_value_wknd<int> struct bool_value_wknd<int>
: false_c : false_
{ {
}; };

View File

@@ -38,6 +38,8 @@
#if defined(BOOST_MSVC) && BOOST_MSVC < 1300 #if defined(BOOST_MSVC) && BOOST_MSVC < 1300
#include "boost/preprocessor/cat.hpp"
#if !defined(BOOST_MPL_PREPROCESSING_MODE) #if !defined(BOOST_MPL_PREPROCESSING_MODE)
namespace boost { namespace mpl { namespace boost { namespace mpl {
typedef int nttp_int; typedef int nttp_int;
@@ -45,7 +47,7 @@ typedef long nttp_long;
}} }}
#endif #endif
# define BOOST_MPL_AUX_NTTP_DECL(T, x) nttp_##T x /**/ # define BOOST_MPL_AUX_NTTP_DECL(T, x) BOOST_PP_CAT(nttp_,T) x /**/
#else #else
# define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/ # define BOOST_MPL_AUX_NTTP_DECL(T, x) T x /**/

View File

@@ -26,7 +26,7 @@
# include "boost/mpl/bind.hpp" # include "boost/mpl/bind.hpp"
# include "boost/mpl/protect.hpp" # include "boost/mpl/protect.hpp"
# include "boost/mpl/quote.hpp" # include "boost/mpl/quote.hpp"
# include "boost/mpl/bool_c.hpp" # include "boost/mpl/bool.hpp"
# include "boost/mpl/aux_/template_arity.hpp" # include "boost/mpl/aux_/template_arity.hpp"
# include "boost/mpl/aux_/config/ttp.hpp" # include "boost/mpl/aux_/config/ttp.hpp"
#endif #endif
@@ -85,7 +85,7 @@ template<
> >
struct lambda_impl struct lambda_impl
{ {
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
typedef T type; typedef T type;
}; };
@@ -107,13 +107,13 @@ template<
BOOST_MPL_PP_DEFAULT_PARAMS(n,bool C,false) BOOST_MPL_PP_DEFAULT_PARAMS(n,bool C,false)
> >
struct lambda_or struct lambda_or
: true_c : true_
{ {
}; };
template<> template<>
struct lambda_or< BOOST_MPL_PP_ENUM(n,false) > struct lambda_or< BOOST_MPL_PP_ENUM(n,false) >
: false_c : false_
{ {
}; };
@@ -123,7 +123,7 @@ struct lambda_or< BOOST_MPL_PP_ENUM(n,false) >
template< int N, bool Protect > template< int N, bool Protect >
struct lambda_impl< arg<N>, Protect AUX_ARITY_PARAM(-1) > struct lambda_impl< arg<N>, Protect AUX_ARITY_PARAM(-1) >
{ {
BOOST_MPL_AUX_IS_LAMBDA_EXPR(true_c) BOOST_MPL_AUX_IS_LAMBDA_EXPR(true_)
typedef arg<N> type; typedef arg<N> type;
}; };
@@ -137,7 +137,7 @@ struct lambda_impl< arg<N>, Protect AUX_ARITY_PARAM(-1) >
template< typename T, bool Protect > template< typename T, bool Protect >
struct lambda_impl< protect<T>, Protect AUX_ARITY_PARAM(1) > struct lambda_impl< protect<T>, Protect AUX_ARITY_PARAM(1) >
{ {
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
typedef protect<T> type; typedef protect<T> type;
}; };
@@ -151,7 +151,7 @@ struct lambda_impl<
, Protect AUX_ARITY_PARAM(BOOST_PP_INC(BOOST_MPL_METAFUNCTION_MAX_ARITY)) , Protect AUX_ARITY_PARAM(BOOST_PP_INC(BOOST_MPL_METAFUNCTION_MAX_ARITY))
> >
{ {
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
typedef bind<F, AUX_LAMBDA_BIND_PARAMS(T)> type; typedef bind<F, AUX_LAMBDA_BIND_PARAMS(T)> type;
}; };
@@ -161,7 +161,7 @@ template<
> >
struct lambda_impl< bind1st<F,T>, Protect AUX_ARITY_PARAM(2) > struct lambda_impl< bind1st<F,T>, Protect AUX_ARITY_PARAM(2) >
{ {
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
typedef bind1st<F,T> type; typedef bind1st<F,T> type;
}; };
@@ -171,7 +171,7 @@ template<
> >
struct lambda_impl< bind2nd<F,T>, Protect AUX_ARITY_PARAM(2) > struct lambda_impl< bind2nd<F,T>, Protect AUX_ARITY_PARAM(2) >
{ {
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
typedef bind2nd<F,T> type; typedef bind2nd<F,T> type;
}; };
@@ -318,7 +318,7 @@ struct lambda_impl<
, Protect AUX_ARITY_PARAM(BOOST_PP_INC(i)) , Protect AUX_ARITY_PARAM(BOOST_PP_INC(i))
> >
{ {
BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_c) BOOST_MPL_AUX_IS_LAMBDA_EXPR(false_)
typedef BOOST_PP_CAT(bind,i)< typedef BOOST_PP_CAT(bind,i)<
F F
AUX_LAMBDA_BIND_N_PARAMS(i, T) AUX_LAMBDA_BIND_N_PARAMS(i, T)

View File

@@ -19,7 +19,7 @@
#include "boost/mpl/aux_/has_xxx.hpp" #include "boost/mpl/aux_/has_xxx.hpp"
#include "boost/mpl/if.hpp" #include "boost/mpl/if.hpp"
#include "boost/mpl/bool_c.hpp" #include "boost/mpl/bool.hpp"
#include "boost/type_traits/is_class.hpp" #include "boost/type_traits/is_class.hpp"
namespace boost { namespace mpl { namespace aux { namespace boost { namespace mpl { namespace aux {
@@ -31,7 +31,7 @@ struct has_rebind
: if_c< : if_c<
::boost::is_class<T>::value ::boost::is_class<T>::value
, has_rebind_impl<T> , has_rebind_impl<T>
, bool_c<false> , bool_<false>
>::type >::type
{ {
}; };

View File

@@ -55,7 +55,7 @@ struct trait \
# else # else
#include "boost/mpl/if.hpp" #include "boost/mpl/if.hpp"
#include "boost/mpl/bool_c.hpp" #include "boost/mpl/bool.hpp"
#include "boost/preprocessor/cat.hpp" #include "boost/preprocessor/cat.hpp"
// agurt, 11/sep/02: MSVC version, based on a USENET newsgroup's posting by // agurt, 11/sep/02: MSVC version, based on a USENET newsgroup's posting by
@@ -104,7 +104,7 @@ struct BOOST_PP_CAT(trait,_impl) : T \
template< typename T > struct trait \ template< typename T > struct trait \
: boost::mpl::if_c< \ : boost::mpl::if_c< \
boost::mpl::aux::msvc_is_incomplete<T>::value \ boost::mpl::aux::msvc_is_incomplete<T>::value \
, boost::mpl::bool_c<false> \ , boost::mpl::bool_<false> \
, BOOST_PP_CAT(trait,_impl)<T> \ , BOOST_PP_CAT(trait,_impl)<T> \
>::type \ >::type \
{ \ { \

View File

@@ -0,0 +1,74 @@
// + file: boost/mpl/aux_/intergal_wrapper.hpp
// + last modified: 27/jan/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
// no include guards, the header is intended for multiple inclusion!
#include "boost/mpl/aux_/ice_cast.hpp"
#include "boost/mpl/aux_/config/nttp.hpp"
#include "boost/mpl/aux_/config/static_constant.hpp"
#include "boost/mpl/aux_/config/workaround.hpp"
#include "boost/preprocessor/cat.hpp"
#if !defined(AUX_WRAPPER_NAME)
# define AUX_WRAPPER_NAME BOOST_PP_CAT(AUX_WRAPPER_VALUE_TYPE,_)
# define AUX_WRAPPER_PARAMS(N) BOOST_MPL_AUX_NTTP_DECL(AUX_WRAPPER_VALUE_TYPE, N)
# define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< value >
#endif
namespace boost { namespace mpl {
template< AUX_WRAPPER_PARAMS(N) >
struct AUX_WRAPPER_NAME
{
BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, value = N);
typedef AUX_WRAPPER_NAME type;
typedef AUX_WRAPPER_VALUE_TYPE value_type;
// have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
// while some other don't like 'value + 1' (Borland), and some don't like
// either
#if BOOST_WORKAROUND(__EDG_VERSION__, <= 243)
private:
BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, next_value = BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)));
BOOST_STATIC_CONSTANT(AUX_WRAPPER_VALUE_TYPE, prior_value = BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)));
public:
typedef AUX_WRAPPER_INST(next_value) next;
typedef AUX_WRAPPER_INST(prior_value) prior;
#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
|| BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(53800))
typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (N + 1)) ) next;
typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (N - 1)) ) prior;
#else
typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (value + 1)) ) next;
typedef AUX_WRAPPER_INST( BOOST_MPL_AUX_ICE_CAST(AUX_WRAPPER_VALUE_TYPE, (value - 1)) ) prior;
#endif
// enables uniform function call syntax for families of overloaded
// functions that return objects of both arithmetic ('int', 'long',
// 'double', etc.) and wrapped integral types (for an example, see
// "mpl/example/power.cpp")
operator AUX_WRAPPER_VALUE_TYPE() const { return this->value; }
};
}} // namespace boost::mpl
#undef AUX_WRAPPER_NAME
#undef AUX_WRAPPER_PARAMS
#undef AUX_WRAPPER_INST
#undef AUX_WRAPPER_VALUE_TYPE

View File

@@ -25,7 +25,7 @@
# include "boost/mpl/lambda_fwd.hpp" # include "boost/mpl/lambda_fwd.hpp"
# include "boost/mpl/bind.hpp" # include "boost/mpl/bind.hpp"
# include "boost/mpl/protect.hpp" # include "boost/mpl/protect.hpp"
# include "boost/mpl/bool_c.hpp" # include "boost/mpl/bool.hpp"
# include "boost/mpl/aux_/template_arity.hpp" # include "boost/mpl/aux_/template_arity.hpp"
#endif #endif
@@ -81,7 +81,7 @@ struct lambda
#if !defined(BOOST_MSVC) || BOOST_MSVC > 1200 #if !defined(BOOST_MSVC) || BOOST_MSVC > 1200
, Protect , Protect
#else #else
, bool_c<Protect>::value , bool_<Protect>::value
#endif #endif
>::template result_<T> >::template result_<T>
{ {

View File

@@ -0,0 +1,169 @@
// + file: boost/mpl/aux_/logical_op.hpp
// + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
// no include guards, the header is intended for multiple inclusion!
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include "boost/mpl/bool.hpp"
# include "boost/mpl/aux_/nested_type_wknd.hpp"
# include "boost/mpl/aux_/void_spec.hpp"
# include "boost/mpl/aux_/lambda_support.hpp"
#endif
#include "boost/mpl/limits/arity.hpp"
#include "boost/mpl/aux_/preprocessor/params.hpp"
#include "boost/mpl/aux_/preprocessor/ext_params.hpp"
#include "boost/mpl/aux_/preprocessor/def_params_tail.hpp"
#include "boost/mpl/aux_/preprocessor/enum.hpp"
#include "boost/mpl/aux_/preprocessor/sub.hpp"
#include "boost/mpl/aux_/config/workaround.hpp"
#include "boost/preprocessor/dec.hpp"
#include "boost/preprocessor/inc.hpp"
#include "boost/preprocessor/cat.hpp"
namespace boost { namespace mpl {
// local macros, #undef-ined at the end of the header
# define AUX_LOGICAL_OP_PARAMS(param, sub) \
BOOST_MPL_PP_PARAMS( \
BOOST_MPL_PP_SUB(BOOST_MPL_METAFUNCTION_MAX_ARITY, sub) \
, param \
) \
/**/
# define AUX_LOGICAL_OP_SHIFTED_PARAMS(param, sub) \
BOOST_MPL_PP_EXT_PARAMS( \
2, BOOST_MPL_PP_SUB(BOOST_PP_INC(BOOST_MPL_METAFUNCTION_MAX_ARITY), sub) \
, param \
) \
/**/
# define AUX_LOGICAL_OP_SPEC_PARAMS(param) \
BOOST_MPL_PP_ENUM( \
BOOST_PP_DEC(BOOST_MPL_METAFUNCTION_MAX_ARITY) \
, param \
) \
/**/
namespace aux {
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
template< bool C_, AUX_LOGICAL_OP_PARAMS(typename T, 1) >
struct BOOST_PP_CAT(AUX_LOGICAL_OP_NAME,impl)
: BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE1,_)
{
};
template< AUX_LOGICAL_OP_PARAMS(typename T, 1) >
struct BOOST_PP_CAT(AUX_LOGICAL_OP_NAME,impl)< AUX_LOGICAL_OP_VALUE2,AUX_LOGICAL_OP_PARAMS(T, 1) >
: BOOST_PP_CAT(AUX_LOGICAL_OP_NAME,impl)<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, AUX_LOGICAL_OP_SHIFTED_PARAMS(T, 1)
, BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE2,_)
>
{
};
template<>
struct BOOST_PP_CAT(AUX_LOGICAL_OP_NAME,impl)<
AUX_LOGICAL_OP_VALUE2
, AUX_LOGICAL_OP_SPEC_PARAMS(BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE2,_))
>
: BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE2,_)
{
};
#else
template< bool C_ > struct BOOST_PP_CAT(AUX_LOGICAL_OP_NAME,impl)
{
template< AUX_LOGICAL_OP_PARAMS(typename T, 1) > struct result_
: BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE1,_)
{
};
};
template<> struct BOOST_PP_CAT(AUX_LOGICAL_OP_NAME,impl)<AUX_LOGICAL_OP_VALUE2>
{
template< AUX_LOGICAL_OP_PARAMS(typename T, 1) > struct result_
: BOOST_PP_CAT(AUX_LOGICAL_OP_NAME,impl)<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< AUX_LOGICAL_OP_SHIFTED_PARAMS(T,1),BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE2,_) >
{
};
#if BOOST_WORKAROUND(BOOST_MSVC, == 1300)
template<> struct result_<AUX_LOGICAL_OP_SPEC_PARAMS(BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE2,_))>
: BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE2,_)
{
};
};
#else
};
template<>
struct BOOST_PP_CAT(AUX_LOGICAL_OP_NAME,impl)<AUX_LOGICAL_OP_VALUE2>
::result_< AUX_LOGICAL_OP_SPEC_PARAMS(BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE2,_)) >
: BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE2,_)
{
};
#endif // BOOST_MSVC == 1300
#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
BOOST_MPL_PP_DEF_PARAMS_TAIL(2, typename T, BOOST_PP_CAT(AUX_LOGICAL_OP_VALUE2,_))
>
struct AUX_LOGICAL_OP_NAME
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
: aux::BOOST_PP_CAT(AUX_LOGICAL_OP_NAME,impl)<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, AUX_LOGICAL_OP_SHIFTED_PARAMS(T,0)
>
#else
: aux::BOOST_PP_CAT(AUX_LOGICAL_OP_NAME,impl)<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< AUX_LOGICAL_OP_SHIFTED_PARAMS(T,0) >
#endif
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
BOOST_MPL_METAFUNCTION_MAX_ARITY
, AUX_LOGICAL_OP_NAME
, (AUX_LOGICAL_OP_PARAMS(T, 0))
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, BOOST_MPL_METAFUNCTION_MAX_ARITY
, AUX_LOGICAL_OP_NAME
)
}} // namespace boost::mpl
#undef AUX_LOGICAL_OP_SPEC_PARAMS
#undef AUX_LOGICAL_OP_SHIFTED_PARAMS
#undef AUX_LOGICAL_OP_PARAMS
#undef AUX_LOGICAL_OP_NAME
#undef AUX_LOGICAL_OP_VALUE1
#undef AUX_LOGICAL_OP_VALUE2

View File

@@ -0,0 +1,62 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_, typename T1, typename T2, typename T3, typename T4 >
struct and_impl
: false_
{
};
template< typename T1, typename T2, typename T3, typename T4 >
struct and_impl< true,T1,T2,T3,T4 >
: and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4
, true_
>
{
};
template<>
struct and_impl<
true
, true_, true_, true_, true_
>
: true_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = true_, typename T4 = true_, typename T5 = true_
>
struct and_
: aux::and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4, T5
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, and_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, and_
)
}} // namespace boost::mpl

View File

@@ -11,7 +11,7 @@ template<
> >
struct lambda_impl struct lambda_impl
{ {
typedef false_c is_le; typedef false_ is_le;
typedef T type; typedef T type;
}; };
@@ -31,13 +31,13 @@ template<
, bool C5 = false , bool C5 = false
> >
struct lambda_or struct lambda_or
: true_c : true_
{ {
}; };
template<> template<>
struct lambda_or< false,false,false,false,false > struct lambda_or< false,false,false,false,false >
: false_c : false_
{ {
}; };
@@ -46,7 +46,7 @@ struct lambda_or< false,false,false,false,false >
template< int N, bool Protect > template< int N, bool Protect >
struct lambda_impl< arg<N>,Protect,-1 > struct lambda_impl< arg<N>,Protect,-1 >
{ {
typedef true_c is_le; typedef true_ is_le;
typedef arg<N> type; typedef arg<N> type;
}; };
@@ -59,7 +59,7 @@ struct lambda_impl<
, Protect, 1 , Protect, 1
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind0< typedef bind0<
F F
> type; > type;
@@ -144,7 +144,7 @@ struct lambda_impl<
, Protect, 2 , Protect, 2
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1< typedef bind1<
F F
, T1 , T1
@@ -232,7 +232,7 @@ struct lambda_impl<
, Protect, 3 , Protect, 3
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2< typedef bind2<
F F
, T1, T2 , T1, T2
@@ -321,7 +321,7 @@ struct lambda_impl<
, Protect, 4 , Protect, 4
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind3< typedef bind3<
F F
, T1, T2, T3 , T1, T2, T3
@@ -415,7 +415,7 @@ struct lambda_impl<
, Protect, 5 , Protect, 5
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind4< typedef bind4<
F F
, T1, T2, T3, T4 , T1, T2, T3, T4
@@ -527,7 +527,7 @@ struct lambda_impl<
, Protect, 6 , Protect, 6
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind5< typedef bind5<
F F
, T1, T2, T3, T4, T5 , T1, T2, T3, T4, T5
@@ -538,7 +538,7 @@ struct lambda_impl<
template< typename T, bool Protect > template< typename T, bool Protect >
struct lambda_impl< protect<T>,Protect,1 > struct lambda_impl< protect<T>,Protect,1 >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef protect<T> type; typedef protect<T> type;
}; };
@@ -553,7 +553,7 @@ struct lambda_impl<
, Protect, 6 , Protect, 6
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind< F,T1,T2,T3,T4,T5 > type; typedef bind< F,T1,T2,T3,T4,T5 > type;
}; };
@@ -563,7 +563,7 @@ template<
> >
struct lambda_impl< bind1st<F,T>,Protect,2 > struct lambda_impl< bind1st<F,T>,Protect,2 >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1st< F,T > type; typedef bind1st< F,T > type;
}; };
@@ -573,7 +573,7 @@ template<
> >
struct lambda_impl< bind2nd<F,T>,Protect,2 > struct lambda_impl< bind2nd<F,T>,Protect,2 >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2nd< F,T > type; typedef bind2nd< F,T > type;
}; };

View File

@@ -0,0 +1,62 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_, typename T1, typename T2, typename T3, typename T4 >
struct or_impl
: true_
{
};
template< typename T1, typename T2, typename T3, typename T4 >
struct or_impl< false,T1,T2,T3,T4 >
: or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4
, false_
>
{
};
template<>
struct or_impl<
false
, false_, false_, false_, false_
>
: false_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = false_, typename T4 = false_, typename T5 = false_
>
struct or_
: aux::or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4, T5
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, or_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, or_
)
}} // namespace boost::mpl

View File

@@ -1,4 +1,4 @@
// preprocessed version of 'boost/mpl/placeholder.hpp' header // preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information // see the original for copyright information
namespace boost { namespace boost {
@@ -6,7 +6,7 @@ namespace mpl {
typedef arg< -1 > _; typedef arg< -1 > _;
namespace placeholder { namespace placeholders {
using boost::mpl::_; using boost::mpl::_;
} }
@@ -15,37 +15,37 @@ using boost::mpl::_;
typedef arg<1> _1; typedef arg<1> _1;
namespace placeholder { namespace placeholders {
using boost::mpl::_1; using boost::mpl::_1;
} }
typedef arg<2> _2; typedef arg<2> _2;
namespace placeholder { namespace placeholders {
using boost::mpl::_2; using boost::mpl::_2;
} }
typedef arg<3> _3; typedef arg<3> _3;
namespace placeholder { namespace placeholders {
using boost::mpl::_3; using boost::mpl::_3;
} }
typedef arg<4> _4; typedef arg<4> _4;
namespace placeholder { namespace placeholders {
using boost::mpl::_4; using boost::mpl::_4;
} }
typedef arg<5> _5; typedef arg<5> _5;
namespace placeholder { namespace placeholders {
using boost::mpl::_5; using boost::mpl::_5;
} }
typedef arg<6> _6; typedef arg<6> _6;
namespace placeholder { namespace placeholders {
using boost::mpl::_6; using boost::mpl::_6;
} }

View File

@@ -0,0 +1,62 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_, typename T1, typename T2, typename T3, typename T4 >
struct and_impl
: false_
{
};
template< typename T1, typename T2, typename T3, typename T4 >
struct and_impl< true,T1,T2,T3,T4 >
: and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4
, true_
>
{
};
template<>
struct and_impl<
true
, true_, true_, true_, true_
>
: true_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = true_, typename T4 = true_, typename T5 = true_
>
struct and_
: aux::and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4, T5
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, and_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, and_
)
}} // namespace boost::mpl

View File

@@ -11,7 +11,7 @@ template<
> >
struct lambda_impl struct lambda_impl
{ {
typedef false_c is_le; typedef false_ is_le;
typedef T type; typedef T type;
}; };
@@ -31,13 +31,13 @@ template<
, bool C5 = false , bool C5 = false
> >
struct lambda_or struct lambda_or
: true_c : true_
{ {
}; };
template<> template<>
struct lambda_or< false,false,false,false,false > struct lambda_or< false,false,false,false,false >
: false_c : false_
{ {
}; };
@@ -46,7 +46,7 @@ struct lambda_or< false,false,false,false,false >
template< int N, bool Protect > template< int N, bool Protect >
struct lambda_impl< arg<N>,Protect,-1 > struct lambda_impl< arg<N>,Protect,-1 >
{ {
typedef true_c is_le; typedef true_ is_le;
typedef arg<N> type; typedef arg<N> type;
}; };
@@ -59,7 +59,7 @@ struct lambda_impl<
, Protect, 1 , Protect, 1
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind0< typedef bind0<
F F
> type; > type;
@@ -144,7 +144,7 @@ struct lambda_impl<
, Protect, 2 , Protect, 2
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1< typedef bind1<
F F
, T1 , T1
@@ -232,7 +232,7 @@ struct lambda_impl<
, Protect, 3 , Protect, 3
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2< typedef bind2<
F F
, T1, T2 , T1, T2
@@ -321,7 +321,7 @@ struct lambda_impl<
, Protect, 4 , Protect, 4
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind3< typedef bind3<
F F
, T1, T2, T3 , T1, T2, T3
@@ -415,7 +415,7 @@ struct lambda_impl<
, Protect, 5 , Protect, 5
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind4< typedef bind4<
F F
, T1, T2, T3, T4 , T1, T2, T3, T4
@@ -527,7 +527,7 @@ struct lambda_impl<
, Protect, 6 , Protect, 6
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind5< typedef bind5<
F F
, T1, T2, T3, T4, T5 , T1, T2, T3, T4, T5
@@ -538,7 +538,7 @@ struct lambda_impl<
template< typename T, bool Protect > template< typename T, bool Protect >
struct lambda_impl< protect<T>,Protect,1 > struct lambda_impl< protect<T>,Protect,1 >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef protect<T> type; typedef protect<T> type;
}; };
@@ -553,7 +553,7 @@ struct lambda_impl<
, Protect, 6 , Protect, 6
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind< F,T1,T2,T3,T4,T5 > type; typedef bind< F,T1,T2,T3,T4,T5 > type;
}; };
@@ -563,7 +563,7 @@ template<
> >
struct lambda_impl< bind1st<F,T>,Protect,2 > struct lambda_impl< bind1st<F,T>,Protect,2 >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1st< F,T > type; typedef bind1st< F,T > type;
}; };
@@ -573,7 +573,7 @@ template<
> >
struct lambda_impl< bind2nd<F,T>,Protect,2 > struct lambda_impl< bind2nd<F,T>,Protect,2 >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2nd< F,T > type; typedef bind2nd< F,T > type;
}; };

View File

@@ -0,0 +1,62 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_, typename T1, typename T2, typename T3, typename T4 >
struct or_impl
: true_
{
};
template< typename T1, typename T2, typename T3, typename T4 >
struct or_impl< false,T1,T2,T3,T4 >
: or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4
, false_
>
{
};
template<>
struct or_impl<
false
, false_, false_, false_, false_
>
: false_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = false_, typename T4 = false_, typename T5 = false_
>
struct or_
: aux::or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4, T5
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, or_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, or_
)
}} // namespace boost::mpl

View File

@@ -1,4 +1,4 @@
// preprocessed version of 'boost/mpl/placeholder.hpp' header // preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information // see the original for copyright information
namespace boost { namespace boost {
@@ -6,7 +6,7 @@ namespace mpl {
typedef arg< -1 > _; typedef arg< -1 > _;
namespace placeholder { namespace placeholders {
using boost::mpl::_; using boost::mpl::_;
} }
@@ -15,37 +15,37 @@ using boost::mpl::_;
typedef arg<1> _1; typedef arg<1> _1;
namespace placeholder { namespace placeholders {
using boost::mpl::_1; using boost::mpl::_1;
} }
typedef arg<2> _2; typedef arg<2> _2;
namespace placeholder { namespace placeholders {
using boost::mpl::_2; using boost::mpl::_2;
} }
typedef arg<3> _3; typedef arg<3> _3;
namespace placeholder { namespace placeholders {
using boost::mpl::_3; using boost::mpl::_3;
} }
typedef arg<4> _4; typedef arg<4> _4;
namespace placeholder { namespace placeholders {
using boost::mpl::_4; using boost::mpl::_4;
} }
typedef arg<5> _5; typedef arg<5> _5;
namespace placeholder { namespace placeholders {
using boost::mpl::_5; using boost::mpl::_5;
} }
typedef arg<6> _6; typedef arg<6> _6;
namespace placeholder { namespace placeholders {
using boost::mpl::_6; using boost::mpl::_6;
} }

View File

@@ -0,0 +1,62 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_, typename T1, typename T2, typename T3, typename T4 >
struct and_impl
: false_
{
};
template< typename T1, typename T2, typename T3, typename T4 >
struct and_impl< true,T1,T2,T3,T4 >
: and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4
, true_
>
{
};
template<>
struct and_impl<
true
, true_, true_, true_, true_
>
: true_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = true_, typename T4 = true_, typename T5 = true_
>
struct and_
: aux::and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4, T5
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, and_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, and_
)
}} // namespace boost::mpl

View File

@@ -11,7 +11,7 @@ template<
> >
struct lambda_impl struct lambda_impl
{ {
typedef false_c is_le; typedef false_ is_le;
typedef T type; typedef T type;
}; };
@@ -31,13 +31,13 @@ template<
, bool C5 = false , bool C5 = false
> >
struct lambda_or struct lambda_or
: true_c : true_
{ {
}; };
template<> template<>
struct lambda_or< false,false,false,false,false > struct lambda_or< false,false,false,false,false >
: false_c : false_
{ {
}; };
@@ -46,7 +46,7 @@ struct lambda_or< false,false,false,false,false >
template< int N, bool Protect > template< int N, bool Protect >
struct lambda_impl< arg<N>,Protect,-1 > struct lambda_impl< arg<N>,Protect,-1 >
{ {
typedef true_c is_le; typedef true_ is_le;
typedef arg<N> type; typedef arg<N> type;
}; };
@@ -59,7 +59,7 @@ struct lambda_impl<
, Protect, 1 , Protect, 1
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind0< typedef bind0<
F F
> type; > type;
@@ -144,7 +144,7 @@ struct lambda_impl<
, Protect, 2 , Protect, 2
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1< typedef bind1<
F F
, T1 , T1
@@ -232,7 +232,7 @@ struct lambda_impl<
, Protect, 3 , Protect, 3
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2< typedef bind2<
F F
, T1, T2 , T1, T2
@@ -321,7 +321,7 @@ struct lambda_impl<
, Protect, 4 , Protect, 4
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind3< typedef bind3<
F F
, T1, T2, T3 , T1, T2, T3
@@ -415,7 +415,7 @@ struct lambda_impl<
, Protect, 5 , Protect, 5
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind4< typedef bind4<
F F
, T1, T2, T3, T4 , T1, T2, T3, T4
@@ -527,7 +527,7 @@ struct lambda_impl<
, Protect, 6 , Protect, 6
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind5< typedef bind5<
F F
, T1, T2, T3, T4, T5 , T1, T2, T3, T4, T5
@@ -538,7 +538,7 @@ struct lambda_impl<
template< typename T, bool Protect > template< typename T, bool Protect >
struct lambda_impl< protect<T>,Protect,1 > struct lambda_impl< protect<T>,Protect,1 >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef protect<T> type; typedef protect<T> type;
}; };
@@ -553,7 +553,7 @@ struct lambda_impl<
, Protect, 6 , Protect, 6
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind< F,T1,T2,T3,T4,T5 > type; typedef bind< F,T1,T2,T3,T4,T5 > type;
}; };
@@ -563,7 +563,7 @@ template<
> >
struct lambda_impl< bind1st<F,T>,Protect,2 > struct lambda_impl< bind1st<F,T>,Protect,2 >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1st< F,T > type; typedef bind1st< F,T > type;
}; };
@@ -573,7 +573,7 @@ template<
> >
struct lambda_impl< bind2nd<F,T>,Protect,2 > struct lambda_impl< bind2nd<F,T>,Protect,2 >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2nd< F,T > type; typedef bind2nd< F,T > type;
}; };

View File

@@ -0,0 +1,62 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_, typename T1, typename T2, typename T3, typename T4 >
struct or_impl
: true_
{
};
template< typename T1, typename T2, typename T3, typename T4 >
struct or_impl< false,T1,T2,T3,T4 >
: or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4
, false_
>
{
};
template<>
struct or_impl<
false
, false_, false_, false_, false_
>
: false_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = false_, typename T4 = false_, typename T5 = false_
>
struct or_
: aux::or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4, T5
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, or_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, or_
)
}} // namespace boost::mpl

View File

@@ -1,4 +1,4 @@
// preprocessed version of 'boost/mpl/placeholder.hpp' header // preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information // see the original for copyright information
namespace boost { namespace boost {
@@ -6,7 +6,7 @@ namespace mpl {
typedef arg< -1 > _; typedef arg< -1 > _;
namespace placeholder { namespace placeholders {
using boost::mpl::_; using boost::mpl::_;
} }
@@ -15,37 +15,37 @@ using boost::mpl::_;
typedef arg<1> _1; typedef arg<1> _1;
namespace placeholder { namespace placeholders {
using boost::mpl::_1; using boost::mpl::_1;
} }
typedef arg<2> _2; typedef arg<2> _2;
namespace placeholder { namespace placeholders {
using boost::mpl::_2; using boost::mpl::_2;
} }
typedef arg<3> _3; typedef arg<3> _3;
namespace placeholder { namespace placeholders {
using boost::mpl::_3; using boost::mpl::_3;
} }
typedef arg<4> _4; typedef arg<4> _4;
namespace placeholder { namespace placeholders {
using boost::mpl::_4; using boost::mpl::_4;
} }
typedef arg<5> _5; typedef arg<5> _5;
namespace placeholder { namespace placeholders {
using boost::mpl::_5; using boost::mpl::_5;
} }
typedef arg<6> _6; typedef arg<6> _6;
namespace placeholder { namespace placeholders {
using boost::mpl::_6; using boost::mpl::_6;
} }

View File

@@ -0,0 +1,68 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_ > struct and_impl
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: false_
{
};
};
template<> struct and_impl<true>
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,true_ >
{
};
};
template<>
struct and_impl<true>
::result_< true_,true_,true_,true_ >
: true_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = true_, typename T4 = true_, typename T5 = true_
>
struct and_
: aux::and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,T5 >
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, and_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, and_
)
}} // namespace boost::mpl

View File

@@ -11,7 +11,7 @@ template<
> >
struct lambda_impl struct lambda_impl
{ {
typedef false_c is_le; typedef false_ is_le;
typedef T type; typedef T type;
}; };
@@ -31,13 +31,13 @@ template<
, bool C5 = false , bool C5 = false
> >
struct lambda_or struct lambda_or
: true_c : true_
{ {
}; };
template<> template<>
struct lambda_or< false,false,false,false,false > struct lambda_or< false,false,false,false,false >
: false_c : false_
{ {
}; };
@@ -46,7 +46,7 @@ struct lambda_or< false,false,false,false,false >
template< int N, bool Protect > template< int N, bool Protect >
struct lambda_impl< arg<N>,Protect > struct lambda_impl< arg<N>,Protect >
{ {
typedef true_c is_le; typedef true_ is_le;
typedef arg<N> type; typedef arg<N> type;
}; };
@@ -59,7 +59,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind0< typedef bind0<
F F
> type; > type;
@@ -144,7 +144,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1< typedef bind1<
F F
, T1 , T1
@@ -232,7 +232,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2< typedef bind2<
F F
, T1, T2 , T1, T2
@@ -321,7 +321,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind3< typedef bind3<
F F
, T1, T2, T3 , T1, T2, T3
@@ -415,7 +415,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind4< typedef bind4<
F F
, T1, T2, T3, T4 , T1, T2, T3, T4
@@ -527,7 +527,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind5< typedef bind5<
F F
, T1, T2, T3, T4, T5 , T1, T2, T3, T4, T5
@@ -538,7 +538,7 @@ struct lambda_impl<
template< typename T, bool Protect > template< typename T, bool Protect >
struct lambda_impl< protect<T>,Protect > struct lambda_impl< protect<T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef protect<T> type; typedef protect<T> type;
}; };
@@ -553,7 +553,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind< F,T1,T2,T3,T4,T5 > type; typedef bind< F,T1,T2,T3,T4,T5 > type;
}; };
@@ -563,7 +563,7 @@ template<
> >
struct lambda_impl< bind1st<F,T>,Protect > struct lambda_impl< bind1st<F,T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1st< F,T > type; typedef bind1st< F,T > type;
}; };
@@ -573,7 +573,7 @@ template<
> >
struct lambda_impl< bind2nd<F,T>,Protect > struct lambda_impl< bind2nd<F,T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2nd< F,T > type; typedef bind2nd< F,T > type;
}; };

View File

@@ -149,7 +149,7 @@ struct lambda
: aux::lambda_impl< : aux::lambda_impl<
::boost::mpl::aux::template_arity<T>::value ::boost::mpl::aux::template_arity<T>::value
, bool_c<Protect>::value , bool_<Protect>::value
>::template result_<T> >::template result_<T>
{ {

View File

@@ -0,0 +1,68 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_ > struct or_impl
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: true_
{
};
};
template<> struct or_impl<false>
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,false_ >
{
};
};
template<>
struct or_impl<false>
::result_< false_,false_,false_,false_ >
: false_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = false_, typename T4 = false_, typename T5 = false_
>
struct or_
: aux::or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,T5 >
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, or_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, or_
)
}} // namespace boost::mpl

View File

@@ -1,4 +1,4 @@
// preprocessed version of 'boost/mpl/placeholder.hpp' header // preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information // see the original for copyright information
namespace boost { namespace boost {
@@ -6,7 +6,7 @@ namespace mpl {
typedef arg< -1 > _; typedef arg< -1 > _;
namespace placeholder { namespace placeholders {
using boost::mpl::_; using boost::mpl::_;
} }
@@ -15,37 +15,37 @@ using boost::mpl::_;
typedef arg<1> _1; typedef arg<1> _1;
namespace placeholder { namespace placeholders {
using boost::mpl::_1; using boost::mpl::_1;
} }
typedef arg<2> _2; typedef arg<2> _2;
namespace placeholder { namespace placeholders {
using boost::mpl::_2; using boost::mpl::_2;
} }
typedef arg<3> _3; typedef arg<3> _3;
namespace placeholder { namespace placeholders {
using boost::mpl::_3; using boost::mpl::_3;
} }
typedef arg<4> _4; typedef arg<4> _4;
namespace placeholder { namespace placeholders {
using boost::mpl::_4; using boost::mpl::_4;
} }
typedef arg<5> _5; typedef arg<5> _5;
namespace placeholder { namespace placeholders {
using boost::mpl::_5; using boost::mpl::_5;
} }
typedef arg<6> _6; typedef arg<6> _6;
namespace placeholder { namespace placeholders {
using boost::mpl::_6; using boost::mpl::_6;
} }

View File

@@ -0,0 +1,65 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_ > struct and_impl
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: false_
{
};
};
template<> struct and_impl<true>
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,true_ >
{
};
template<> struct result_<true_, true_, true_, true_>
: true_
{
};
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = true_, typename T4 = true_, typename T5 = true_
>
struct and_
: aux::and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,T5 >
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, and_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, and_
)
}} // namespace boost::mpl

View File

@@ -11,7 +11,7 @@ template<
> >
struct lambda_impl struct lambda_impl
{ {
typedef false_c is_le; typedef false_ is_le;
typedef T type; typedef T type;
}; };
@@ -31,13 +31,13 @@ template<
, bool C5 = false , bool C5 = false
> >
struct lambda_or struct lambda_or
: true_c : true_
{ {
}; };
template<> template<>
struct lambda_or< false,false,false,false,false > struct lambda_or< false,false,false,false,false >
: false_c : false_
{ {
}; };
@@ -46,7 +46,7 @@ struct lambda_or< false,false,false,false,false >
template< int N, bool Protect > template< int N, bool Protect >
struct lambda_impl< arg<N>,Protect > struct lambda_impl< arg<N>,Protect >
{ {
typedef true_c is_le; typedef true_ is_le;
typedef arg<N> type; typedef arg<N> type;
}; };
@@ -59,7 +59,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind0< typedef bind0<
F F
> type; > type;
@@ -144,7 +144,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1< typedef bind1<
F F
, T1 , T1
@@ -232,7 +232,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2< typedef bind2<
F F
, T1, T2 , T1, T2
@@ -321,7 +321,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind3< typedef bind3<
F F
, T1, T2, T3 , T1, T2, T3
@@ -415,7 +415,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind4< typedef bind4<
F F
, T1, T2, T3, T4 , T1, T2, T3, T4
@@ -527,7 +527,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind5< typedef bind5<
F F
, T1, T2, T3, T4, T5 , T1, T2, T3, T4, T5
@@ -538,7 +538,7 @@ struct lambda_impl<
template< typename T, bool Protect > template< typename T, bool Protect >
struct lambda_impl< protect<T>,Protect > struct lambda_impl< protect<T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef protect<T> type; typedef protect<T> type;
}; };
@@ -553,7 +553,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind< F,T1,T2,T3,T4,T5 > type; typedef bind< F,T1,T2,T3,T4,T5 > type;
}; };
@@ -563,7 +563,7 @@ template<
> >
struct lambda_impl< bind1st<F,T>,Protect > struct lambda_impl< bind1st<F,T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1st< F,T > type; typedef bind1st< F,T > type;
}; };
@@ -573,7 +573,7 @@ template<
> >
struct lambda_impl< bind2nd<F,T>,Protect > struct lambda_impl< bind2nd<F,T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2nd< F,T > type; typedef bind2nd< F,T > type;
}; };

View File

@@ -0,0 +1,65 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_ > struct or_impl
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: true_
{
};
};
template<> struct or_impl<false>
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,false_ >
{
};
template<> struct result_<false_, false_, false_, false_>
: false_
{
};
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = false_, typename T4 = false_, typename T5 = false_
>
struct or_
: aux::or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,T5 >
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, or_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, or_
)
}} // namespace boost::mpl

View File

@@ -1,54 +0,0 @@
// preprocessed version of 'boost/mpl/placeholder.hpp' header
// see the original for copyright information
namespace boost {
namespace mpl {
typedef arg< -1 > _;
namespace placeholder {
using boost::mpl::_;
}
// agurt, 17/mar/02: one more placeholder for the last 'apply#'
// specialization
typedef arg<1> _1;
namespace placeholder {
using boost::mpl::_1;
}
typedef arg<2> _2;
namespace placeholder {
using boost::mpl::_2;
}
typedef arg<3> _3;
namespace placeholder {
using boost::mpl::_3;
}
typedef arg<4> _4;
namespace placeholder {
using boost::mpl::_4;
}
typedef arg<5> _5;
namespace placeholder {
using boost::mpl::_5;
}
typedef arg<6> _6;
namespace placeholder {
using boost::mpl::_6;
}
} // namespace mpl
} // namespace boost

View File

@@ -0,0 +1,54 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost {
namespace mpl {
typedef arg< -1 > _;
namespace placeholders {
using boost::mpl::_;
}
// agurt, 17/mar/02: one more placeholder for the last 'apply#'
// specialization
typedef arg<1> _1;
namespace placeholders {
using boost::mpl::_1;
}
typedef arg<2> _2;
namespace placeholders {
using boost::mpl::_2;
}
typedef arg<3> _3;
namespace placeholders {
using boost::mpl::_3;
}
typedef arg<4> _4;
namespace placeholders {
using boost::mpl::_4;
}
typedef arg<5> _5;
namespace placeholders {
using boost::mpl::_5;
}
typedef arg<6> _6;
namespace placeholders {
using boost::mpl::_6;
}
} // namespace mpl
} // namespace boost

View File

@@ -0,0 +1,62 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_, typename T1, typename T2, typename T3, typename T4 >
struct and_impl
: false_
{
};
template< typename T1, typename T2, typename T3, typename T4 >
struct and_impl< true,T1,T2,T3,T4 >
: and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4
, true_
>
{
};
template<>
struct and_impl<
true
, true_, true_, true_, true_
>
: true_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = true_, typename T4 = true_, typename T5 = true_
>
struct and_
: aux::and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4, T5
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, and_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, and_
)
}} // namespace boost::mpl

View File

@@ -11,7 +11,7 @@ template<
> >
struct lambda_impl struct lambda_impl
{ {
typedef false_c is_le; typedef false_ is_le;
typedef T type; typedef T type;
}; };
@@ -31,13 +31,13 @@ template<
, bool C5 = false , bool C5 = false
> >
struct lambda_or struct lambda_or
: true_c : true_
{ {
}; };
template<> template<>
struct lambda_or< false,false,false,false,false > struct lambda_or< false,false,false,false,false >
: false_c : false_
{ {
}; };
@@ -46,7 +46,7 @@ struct lambda_or< false,false,false,false,false >
template< int N, bool Protect > template< int N, bool Protect >
struct lambda_impl< arg<N>,Protect > struct lambda_impl< arg<N>,Protect >
{ {
typedef true_c is_le; typedef true_ is_le;
typedef arg<N> type; typedef arg<N> type;
}; };
@@ -59,7 +59,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind0< typedef bind0<
F F
> type; > type;
@@ -144,7 +144,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1< typedef bind1<
F F
, T1 , T1
@@ -232,7 +232,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2< typedef bind2<
F F
, T1, T2 , T1, T2
@@ -321,7 +321,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind3< typedef bind3<
F F
, T1, T2, T3 , T1, T2, T3
@@ -415,7 +415,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind4< typedef bind4<
F F
, T1, T2, T3, T4 , T1, T2, T3, T4
@@ -527,7 +527,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind5< typedef bind5<
F F
, T1, T2, T3, T4, T5 , T1, T2, T3, T4, T5
@@ -538,7 +538,7 @@ struct lambda_impl<
template< typename T, bool Protect > template< typename T, bool Protect >
struct lambda_impl< protect<T>,Protect > struct lambda_impl< protect<T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef protect<T> type; typedef protect<T> type;
}; };
@@ -553,7 +553,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind< F,T1,T2,T3,T4,T5 > type; typedef bind< F,T1,T2,T3,T4,T5 > type;
}; };
@@ -563,7 +563,7 @@ template<
> >
struct lambda_impl< bind1st<F,T>,Protect > struct lambda_impl< bind1st<F,T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1st< F,T > type; typedef bind1st< F,T > type;
}; };
@@ -573,7 +573,7 @@ template<
> >
struct lambda_impl< bind2nd<F,T>,Protect > struct lambda_impl< bind2nd<F,T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2nd< F,T > type; typedef bind2nd< F,T > type;
}; };

View File

@@ -0,0 +1,62 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_, typename T1, typename T2, typename T3, typename T4 >
struct or_impl
: true_
{
};
template< typename T1, typename T2, typename T3, typename T4 >
struct or_impl< false,T1,T2,T3,T4 >
: or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4
, false_
>
{
};
template<>
struct or_impl<
false
, false_, false_, false_, false_
>
: false_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = false_, typename T4 = false_, typename T5 = false_
>
struct or_
: aux::or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4, T5
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, or_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, or_
)
}} // namespace boost::mpl

View File

@@ -1,54 +0,0 @@
// preprocessed version of 'boost/mpl/placeholder.hpp' header
// see the original for copyright information
namespace boost {
namespace mpl {
typedef arg< -1 > _;
namespace placeholder {
using boost::mpl::_;
}
// agurt, 17/mar/02: one more placeholder for the last 'apply#'
// specialization
typedef arg<1> _1;
namespace placeholder {
using boost::mpl::_1;
}
typedef arg<2> _2;
namespace placeholder {
using boost::mpl::_2;
}
typedef arg<3> _3;
namespace placeholder {
using boost::mpl::_3;
}
typedef arg<4> _4;
namespace placeholder {
using boost::mpl::_4;
}
typedef arg<5> _5;
namespace placeholder {
using boost::mpl::_5;
}
typedef arg<6> _6;
namespace placeholder {
using boost::mpl::_6;
}
} // namespace mpl
} // namespace boost

View File

@@ -0,0 +1,54 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost {
namespace mpl {
typedef arg< -1 > _;
namespace placeholders {
using boost::mpl::_;
}
// agurt, 17/mar/02: one more placeholder for the last 'apply#'
// specialization
typedef arg<1> _1;
namespace placeholders {
using boost::mpl::_1;
}
typedef arg<2> _2;
namespace placeholders {
using boost::mpl::_2;
}
typedef arg<3> _3;
namespace placeholders {
using boost::mpl::_3;
}
typedef arg<4> _4;
namespace placeholders {
using boost::mpl::_4;
}
typedef arg<5> _5;
namespace placeholders {
using boost::mpl::_5;
}
typedef arg<6> _6;
namespace placeholders {
using boost::mpl::_6;
}
} // namespace mpl
} // namespace boost

View File

@@ -0,0 +1,68 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_ > struct and_impl
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: false_
{
};
};
template<> struct and_impl<true>
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,true_ >
{
};
};
template<>
struct and_impl<true>
::result_< true_,true_,true_,true_ >
: true_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = true_, typename T4 = true_, typename T5 = true_
>
struct and_
: aux::and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,T5 >
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, and_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, and_
)
}} // namespace boost::mpl

View File

@@ -11,7 +11,7 @@ template<
> >
struct lambda_impl struct lambda_impl
{ {
typedef false_c is_le; typedef false_ is_le;
typedef T type; typedef T type;
}; };
@@ -31,13 +31,13 @@ template<
, bool C5 = false , bool C5 = false
> >
struct lambda_or struct lambda_or
: true_c : true_
{ {
}; };
template<> template<>
struct lambda_or< false,false,false,false,false > struct lambda_or< false,false,false,false,false >
: false_c : false_
{ {
}; };
@@ -46,7 +46,7 @@ struct lambda_or< false,false,false,false,false >
template< int N, bool Protect > template< int N, bool Protect >
struct lambda_impl< arg<N>,Protect > struct lambda_impl< arg<N>,Protect >
{ {
typedef true_c is_le; typedef true_ is_le;
typedef arg<N> type; typedef arg<N> type;
}; };
@@ -59,7 +59,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind0< typedef bind0<
F F
> type; > type;
@@ -144,7 +144,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1< typedef bind1<
F F
, T1 , T1
@@ -232,7 +232,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2< typedef bind2<
F F
, T1, T2 , T1, T2
@@ -321,7 +321,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind3< typedef bind3<
F F
, T1, T2, T3 , T1, T2, T3
@@ -415,7 +415,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind4< typedef bind4<
F F
, T1, T2, T3, T4 , T1, T2, T3, T4
@@ -527,7 +527,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind5< typedef bind5<
F F
, T1, T2, T3, T4, T5 , T1, T2, T3, T4, T5
@@ -538,7 +538,7 @@ struct lambda_impl<
template< typename T, bool Protect > template< typename T, bool Protect >
struct lambda_impl< protect<T>,Protect > struct lambda_impl< protect<T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef protect<T> type; typedef protect<T> type;
}; };
@@ -553,7 +553,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind< F,T1,T2,T3,T4,T5 > type; typedef bind< F,T1,T2,T3,T4,T5 > type;
}; };
@@ -563,7 +563,7 @@ template<
> >
struct lambda_impl< bind1st<F,T>,Protect > struct lambda_impl< bind1st<F,T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1st< F,T > type; typedef bind1st< F,T > type;
}; };
@@ -573,7 +573,7 @@ template<
> >
struct lambda_impl< bind2nd<F,T>,Protect > struct lambda_impl< bind2nd<F,T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2nd< F,T > type; typedef bind2nd< F,T > type;
}; };

View File

@@ -0,0 +1,68 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_ > struct or_impl
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: true_
{
};
};
template<> struct or_impl<false>
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,false_ >
{
};
};
template<>
struct or_impl<false>
::result_< false_,false_,false_,false_ >
: false_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = false_, typename T4 = false_, typename T5 = false_
>
struct or_
: aux::or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
>::template result_< T2,T3,T4,T5 >
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, or_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, or_
)
}} // namespace boost::mpl

View File

@@ -1,54 +0,0 @@
// preprocessed version of 'boost/mpl/placeholder.hpp' header
// see the original for copyright information
namespace boost {
namespace mpl {
typedef arg< -1 > _;
namespace placeholder {
using boost::mpl::_;
}
// agurt, 17/mar/02: one more placeholder for the last 'apply#'
// specialization
typedef arg<1> _1;
namespace placeholder {
using boost::mpl::_1;
}
typedef arg<2> _2;
namespace placeholder {
using boost::mpl::_2;
}
typedef arg<3> _3;
namespace placeholder {
using boost::mpl::_3;
}
typedef arg<4> _4;
namespace placeholder {
using boost::mpl::_4;
}
typedef arg<5> _5;
namespace placeholder {
using boost::mpl::_5;
}
typedef arg<6> _6;
namespace placeholder {
using boost::mpl::_6;
}
} // namespace mpl
} // namespace boost

View File

@@ -0,0 +1,54 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost {
namespace mpl {
typedef arg< -1 > _;
namespace placeholders {
using boost::mpl::_;
}
// agurt, 17/mar/02: one more placeholder for the last 'apply#'
// specialization
typedef arg<1> _1;
namespace placeholders {
using boost::mpl::_1;
}
typedef arg<2> _2;
namespace placeholders {
using boost::mpl::_2;
}
typedef arg<3> _3;
namespace placeholders {
using boost::mpl::_3;
}
typedef arg<4> _4;
namespace placeholders {
using boost::mpl::_4;
}
typedef arg<5> _5;
namespace placeholders {
using boost::mpl::_5;
}
typedef arg<6> _6;
namespace placeholders {
using boost::mpl::_6;
}
} // namespace mpl
} // namespace boost

View File

@@ -0,0 +1,62 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_, typename T1, typename T2, typename T3, typename T4 >
struct and_impl
: false_
{
};
template< typename T1, typename T2, typename T3, typename T4 >
struct and_impl< true,T1,T2,T3,T4 >
: and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4
, true_
>
{
};
template<>
struct and_impl<
true
, true_, true_, true_, true_
>
: true_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = true_, typename T4 = true_, typename T5 = true_
>
struct and_
: aux::and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4, T5
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, and_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, and_
)
}} // namespace boost::mpl

View File

@@ -11,7 +11,7 @@ template<
> >
struct lambda_impl struct lambda_impl
{ {
typedef false_c is_le; typedef false_ is_le;
typedef T type; typedef T type;
}; };
@@ -31,13 +31,13 @@ template<
, bool C5 = false , bool C5 = false
> >
struct lambda_or struct lambda_or
: true_c : true_
{ {
}; };
template<> template<>
struct lambda_or< false,false,false,false,false > struct lambda_or< false,false,false,false,false >
: false_c : false_
{ {
}; };
@@ -46,7 +46,7 @@ struct lambda_or< false,false,false,false,false >
template< int N, bool Protect > template< int N, bool Protect >
struct lambda_impl< arg<N>,Protect > struct lambda_impl< arg<N>,Protect >
{ {
typedef true_c is_le; typedef true_ is_le;
typedef arg<N> type; typedef arg<N> type;
}; };
@@ -59,7 +59,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind0< typedef bind0<
F F
> type; > type;
@@ -144,7 +144,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1< typedef bind1<
F F
, T1 , T1
@@ -232,7 +232,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2< typedef bind2<
F F
, T1, T2 , T1, T2
@@ -321,7 +321,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind3< typedef bind3<
F F
, T1, T2, T3 , T1, T2, T3
@@ -415,7 +415,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind4< typedef bind4<
F F
, T1, T2, T3, T4 , T1, T2, T3, T4
@@ -527,7 +527,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind5< typedef bind5<
F F
, T1, T2, T3, T4, T5 , T1, T2, T3, T4, T5
@@ -538,7 +538,7 @@ struct lambda_impl<
template< typename T, bool Protect > template< typename T, bool Protect >
struct lambda_impl< protect<T>,Protect > struct lambda_impl< protect<T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef protect<T> type; typedef protect<T> type;
}; };
@@ -553,7 +553,7 @@ struct lambda_impl<
, Protect , Protect
> >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind< F,T1,T2,T3,T4,T5 > type; typedef bind< F,T1,T2,T3,T4,T5 > type;
}; };
@@ -563,7 +563,7 @@ template<
> >
struct lambda_impl< bind1st<F,T>,Protect > struct lambda_impl< bind1st<F,T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind1st< F,T > type; typedef bind1st< F,T > type;
}; };
@@ -573,7 +573,7 @@ template<
> >
struct lambda_impl< bind2nd<F,T>,Protect > struct lambda_impl< bind2nd<F,T>,Protect >
{ {
typedef false_c is_le; typedef false_ is_le;
typedef bind2nd< F,T > type; typedef bind2nd< F,T > type;
}; };

View File

@@ -0,0 +1,62 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost { namespace mpl {
namespace aux {
template< bool C_, typename T1, typename T2, typename T3, typename T4 >
struct or_impl
: true_
{
};
template< typename T1, typename T2, typename T3, typename T4 >
struct or_impl< false,T1,T2,T3,T4 >
: or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4
, false_
>
{
};
template<>
struct or_impl<
false
, false_, false_, false_, false_
>
: false_
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = false_, typename T4 = false_, typename T5 = false_
>
struct or_
: aux::or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value
, T2, T3, T4, T5
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(
5
, or_
, (T1, T2, T3, T4, T5)
)
};
BOOST_MPL_AUX_VOID_SPEC_EXT(
2
, 5
, or_
)
}} // namespace boost::mpl

View File

@@ -1,54 +0,0 @@
// preprocessed version of 'boost/mpl/placeholder.hpp' header
// see the original for copyright information
namespace boost {
namespace mpl {
typedef arg< -1 > _;
namespace placeholder {
using boost::mpl::_;
}
// agurt, 17/mar/02: one more placeholder for the last 'apply#'
// specialization
typedef arg<1> _1;
namespace placeholder {
using boost::mpl::_1;
}
typedef arg<2> _2;
namespace placeholder {
using boost::mpl::_2;
}
typedef arg<3> _3;
namespace placeholder {
using boost::mpl::_3;
}
typedef arg<4> _4;
namespace placeholder {
using boost::mpl::_4;
}
typedef arg<5> _5;
namespace placeholder {
using boost::mpl::_5;
}
typedef arg<6> _6;
namespace placeholder {
using boost::mpl::_6;
}
} // namespace mpl
} // namespace boost

View File

@@ -0,0 +1,54 @@
// preprocessed version of 'boost/mpl/aux_/config/use_preprocessed.hpp' header
// see the original for copyright information
namespace boost {
namespace mpl {
typedef arg< -1 > _;
namespace placeholders {
using boost::mpl::_;
}
// agurt, 17/mar/02: one more placeholder for the last 'apply#'
// specialization
typedef arg<1> _1;
namespace placeholders {
using boost::mpl::_1;
}
typedef arg<2> _2;
namespace placeholders {
using boost::mpl::_2;
}
typedef arg<3> _3;
namespace placeholders {
using boost::mpl::_3;
}
typedef arg<4> _4;
namespace placeholders {
using boost::mpl::_4;
}
typedef arg<5> _5;
namespace placeholders {
using boost::mpl::_5;
}
typedef arg<6> _6;
namespace placeholders {
using boost::mpl::_6;
}
} // namespace mpl
} // namespace boost

View File

@@ -18,7 +18,7 @@
#define BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED #define BOOST_MPL_AUX_RANGE_C_EMPTY_HPP_INCLUDED
#include "boost/mpl/empty_fwd.hpp" #include "boost/mpl/empty_fwd.hpp"
#include "boost/mpl/comparison/equal_to.hpp" #include "boost/mpl/equal_to.hpp"
#include "boost/mpl/aux_/range_c/tag.hpp" #include "boost/mpl/aux_/range_c/tag.hpp"
namespace boost { namespace boost {

View File

@@ -18,8 +18,8 @@
#define BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED #define BOOST_MPL_AUX_RANGE_C_ITERATOR_HPP_INCLUDED
#include "boost/mpl/iterator_tag.hpp" #include "boost/mpl/iterator_tag.hpp"
#include "boost/mpl/arithmetic/plus.hpp" #include "boost/mpl/plus.hpp"
#include "boost/mpl/arithmetic/minus.hpp" #include "boost/mpl/minus.hpp"
#include "boost/mpl/aux_/iterator_names.hpp" #include "boost/mpl/aux_/iterator_names.hpp"
namespace boost { namespace boost {

View File

@@ -18,7 +18,7 @@
#define BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED #define BOOST_MPL_AUX_RANGE_C_SIZE_HPP_INCLUDED
#include "boost/mpl/size_fwd.hpp" #include "boost/mpl/size_fwd.hpp"
#include "boost/mpl/arithmetic/minus.hpp" #include "boost/mpl/minus.hpp"
#include "boost/mpl/aux_/range_c/tag.hpp" #include "boost/mpl/aux_/range_c/tag.hpp"
namespace boost { namespace boost {

View File

@@ -18,9 +18,9 @@
#define BOOST_MPL_AUX_SINGLE_ELEMENT_ITER_HPP_INCLUDED #define BOOST_MPL_AUX_SINGLE_ELEMENT_ITER_HPP_INCLUDED
#include "boost/mpl/iterator_tag.hpp" #include "boost/mpl/iterator_tag.hpp"
#include "boost/mpl/arithmetic/plus.hpp" #include "boost/mpl/plus.hpp"
#include "boost/mpl/arithmetic/minus.hpp" #include "boost/mpl/minus.hpp"
#include "boost/mpl/int_c.hpp" #include "boost/mpl/int.hpp"
#include "boost/mpl/aux_/value_wknd.hpp" #include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/iterator_names.hpp" #include "boost/mpl/aux_/iterator_names.hpp"
#include "boost/mpl/aux_/lambda_spec.hpp" #include "boost/mpl/aux_/lambda_spec.hpp"
@@ -39,12 +39,12 @@ template< typename T, BOOST_MPL_AUX_NTTP_DECL(int, N) >
struct single_iter_base struct single_iter_base
{ {
typedef ra_iter_tag_ category; typedef ra_iter_tag_ category;
typedef int_c<N> position; typedef int_<N> position;
template< typename D > template< typename D >
struct BOOST_MPL_AUX_ITERATOR_ADVANCE struct BOOST_MPL_AUX_ITERATOR_ADVANCE
{ {
typedef plus< int_c<N>,D > n_; typedef plus< int_<N>,D > n_;
typedef single_element_iter< typedef single_element_iter<
T T
, BOOST_MPL_AUX_VALUE_WKND(n_)::value , BOOST_MPL_AUX_VALUE_WKND(n_)::value
@@ -56,7 +56,7 @@ struct single_iter_base
{ {
typedef typename minus< typedef typename minus<
typename U::position typename U::position
, int_c<N> , int_<N>
>::type type; >::type type;
}; };
}; };

View File

@@ -22,7 +22,7 @@
#if defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \ #if defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \
|| defined(BOOST_MPL_MSVC_60_ETI_BUG) || defined(BOOST_MPL_MSVC_60_ETI_BUG)
# include "boost/mpl/int_c.hpp" # include "boost/mpl/int.hpp"
namespace boost { namespace mpl { namespace aux { namespace boost { namespace mpl { namespace aux {
@@ -35,7 +35,7 @@ struct value_wknd
#if defined(BOOST_MPL_MSVC_60_ETI_BUG) #if defined(BOOST_MPL_MSVC_60_ETI_BUG)
template<> template<>
struct value_wknd<int> struct value_wknd<int>
: int_c<0> : int_<0>
{ {
}; };
#endif #endif

View File

@@ -28,7 +28,7 @@
#include "boost/mpl/aux_/config/static_constant.hpp" #include "boost/mpl/aux_/config/static_constant.hpp"
#if !defined(BOOST_MPL_PREPROCESSING_MODE) #if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include "boost/mpl/placeholder.hpp" # include "boost/mpl/placeholders.hpp"
# include "boost/mpl/void.hpp" # include "boost/mpl/void.hpp"
# include "boost/mpl/protect.hpp" # include "boost/mpl/protect.hpp"
# include "boost/mpl/limits/arity.hpp" # include "boost/mpl/limits/arity.hpp"

View File

@@ -0,0 +1,71 @@
#ifndef BOOST_MPL_BITAND_HPP_INCLUDED
#define BOOST_MPL_BITAND_HPP_INCLUDED
// + file: boost/mpl/bitand.hpp
// + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy, Jaap Suter
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp"
#include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp"
#include "boost/mpl/aux_/lambda_support.hpp"
#include "boost/config.hpp"
namespace boost {
namespace mpl {
template<
typename T, T N1, T N2, T N3 = 0xFFFFFFFF, T N4 = 0xFFFFFFFF, T N5 = 0xFFFFFFFF
>
struct bitand_c
{
BOOST_STATIC_CONSTANT(T, value = (N1 & N2 & N3 & N4 & N5));
#if !defined(__BORLANDC__)
typedef integral_c<T,value> type;
#else
typedef integral_c<T,(N1 & N2 & N3 & N4 & N5)> type;
#endif
};
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = integral_c<int,0xFFFFFFFF>
, typename T4 = integral_c<int,0xFFFFFFFF>
, typename T5 = integral_c<int,0xFFFFFFFF>
>
struct bitand_
: bitand_c<
BOOST_MPL_AUX_TYPEOF(T1,
T1::value & T2::value & T3::value & T4::value & T5::value
)
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T1)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T2)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T3)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T4)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T5)::value
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(5, bitand_, (T1,T2,T3,T4,T5))
};
BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,bitand_)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_BITAND_HPP_INCLUDED

View File

@@ -0,0 +1,71 @@
#ifndef BOOST_MPL_BITOR_HPP_INCLUDED
#define BOOST_MPL_BITOR_HPP_INCLUDED
// + file: boost/mpl/bitor.hpp
// + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy, Jaap Suter
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp"
#include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp"
#include "boost/mpl/aux_/lambda_support.hpp"
#include "boost/config.hpp"
namespace boost {
namespace mpl {
template<
typename T, T N1, T N2, T N3 = 0, T N4 = 0, T N5 = 0
>
struct bitor_c
{
BOOST_STATIC_CONSTANT(T, value = (N1 | N2 | N3 | N4 | N5));
#if !defined(__BORLANDC__)
typedef integral_c<T,value> type;
#else
typedef integral_c<T,(N1 | N2 | N3 | N4 | N5)> type;
#endif
};
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = integral_c<int,0xFFFFFFFF>
, typename T4 = integral_c<int,0xFFFFFFFF>
, typename T5 = integral_c<int,0xFFFFFFFF>
>
struct bitor_
: bitor_c<
BOOST_MPL_AUX_TYPEOF(T1,
T1::value | T2::value | T3::value | T4::value | T5::value
)
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T1)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T2)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T3)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T4)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T5)::value
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(5, bitor_, (T1,T2,T3,T4,T5))
};
BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,bitor_)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_BITOR_HPP_INCLUDED

View File

@@ -0,0 +1,71 @@
#ifndef BOOST_MPL_BITXOR_HPP_INCLUDED
#define BOOST_MPL_BITXOR_HPP_INCLUDED
// + file: boost/mpl/bitxor.hpp
// + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy, Jaap Suter
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp"
#include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp"
#include "boost/mpl/aux_/lambda_support.hpp"
#include "boost/config.hpp"
namespace boost {
namespace mpl {
template<
typename T, T N1, T N2, T N3 = 0, T N4 = 0, T N5 = 0
>
struct bitxor_c
{
BOOST_STATIC_CONSTANT(T, value = (N1 ^ N2 ^ N3 ^ N4 ^ N5));
#if !defined(__BORLANDC__)
typedef integral_c<T,value> type;
#else
typedef integral_c<T,(N1 ^ N2 ^ N3 ^ N4 ^ N5)> type;
#endif
};
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T1)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T2)
, typename T3 = integral_c<int,0>
, typename T4 = integral_c<int,0>
, typename T5 = integral_c<int,0>
>
struct bitxor_
: bitxor_c<
BOOST_MPL_AUX_TYPEOF(T1,
T1::value ^ T2::value ^ T3::value ^ T4::value ^ T5::value
)
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T1)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T2)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T3)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T4)::value
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T5)::value
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(5, bitxor_, (T1,T2,T3,T4,T5))
};
BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,bitxor_)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_BITXOR_HPP_INCLUDED

View File

@@ -0,0 +1,39 @@
#ifndef BOOST_MPL_BOOL_HPP_INCLUDED
#define BOOST_MPL_BOOL_HPP_INCLUDED
// + file: boost/mpl/bool.hpp
// + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#include "boost/mpl/aux_/config/static_constant.hpp"
namespace boost { namespace mpl {
template< bool C_ > struct bool_
{
BOOST_STATIC_CONSTANT(bool, value = C_);
typedef bool_ type;
typedef bool value_type;
operator bool() const { return this->value; }
};
// shorcuts
typedef bool_<true> true_;
typedef bool_<false> false_;
}} // namespace boost::mpl
#endif // BOOST_MPL_BOOL_HPP_INCLUDED

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/comparison.hpp header file #ifndef BOOST_MPL_COMPARISON_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_COMPARISON_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/comparison.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,15 +15,14 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#ifndef BOOST_MPL_COMPARISON_HPP_INCLUDED #include "boost/mpl/equal_to.hpp"
#define BOOST_MPL_COMPARISON_HPP_INCLUDED #include "boost/mpl/not_equal_to.hpp"
#include "boost/mpl/less.hpp"
#include "boost/mpl/comparison/equal_to.hpp" #include "boost/mpl/greater.hpp"
#include "boost/mpl/comparison/not_equal_to.hpp" #include "boost/mpl/less_equal.hpp"
#include "boost/mpl/comparison/less.hpp" #include "boost/mpl/greater_equal.hpp"
#include "boost/mpl/comparison/greater.hpp"
#include "boost/mpl/comparison/less_equal.hpp"
#include "boost/mpl/comparison/greater_equal.hpp"
#endif // BOOST_MPL_COMPARISON_HPP_INCLUDED #endif // BOOST_MPL_COMPARISON_HPP_INCLUDED

View File

@@ -19,7 +19,7 @@
#include "boost/mpl/begin_end.hpp" #include "boost/mpl/begin_end.hpp"
#include "boost/mpl/find.hpp" #include "boost/mpl/find.hpp"
#include "boost/mpl/logical/not.hpp" #include "boost/mpl/not.hpp"
#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/void_spec.hpp"
#include "boost/mpl/aux_/lambda_support.hpp" #include "boost/mpl/aux_/lambda_support.hpp"
#include "boost/type_traits/is_same.hpp" #include "boost/type_traits/is_same.hpp"
@@ -32,7 +32,7 @@ template<
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) , typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
> >
struct contains struct contains
: logical_not< is_same< : not_< is_same<
typename find<Sequence,T>::type typename find<Sequence,T>::type
, typename end<Sequence>::type , typename end<Sequence>::type
> > > >

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/arithmetic/divides.hpp header file #ifndef BOOST_MPL_DIVIDES_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_DIVIDES_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/divides.hpp
// Copyright (c) 2000/02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,9 +15,8 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
#ifndef BOOST_MPL_ARITHMETIC_DIVIDES_HPP_INCLUDED // See http://www.boost.org/libs/mpl for documentation.
#define BOOST_MPL_ARITHMETIC_DIVIDES_HPP_INCLUDED
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp" #include "boost/mpl/aux_/typeof.hpp"
@@ -75,4 +76,4 @@ BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,divides)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_ARITHMETIC_DIVIDES_HPP_INCLUDED #endif // BOOST_MPL_DIVIDES_HPP_INCLUDED

View File

@@ -18,7 +18,7 @@
#define BOOST_MPL_EMPTY_BASE_HPP_INCLUDED #define BOOST_MPL_EMPTY_BASE_HPP_INCLUDED
#include "boost/type_traits/is_empty.hpp" #include "boost/type_traits/is_empty.hpp"
#include "boost/mpl/bool_c.hpp" #include "boost/mpl/bool.hpp"
#include "boost/config.hpp" #include "boost/config.hpp"
// should be always the last #include directive // should be always the last #include directive
@@ -34,19 +34,19 @@ struct empty_base {};
template< typename T > template< typename T >
struct is_empty_base struct is_empty_base
: false_c : false_
{ {
#if defined(BOOST_MSVC) && BOOST_MSVC < 1300 #if defined(BOOST_MSVC) && BOOST_MSVC < 1300
using false_c::value; using false_::value;
#endif #endif
}; };
template<> template<>
struct is_empty_base<empty_base> struct is_empty_base<empty_base>
: true_c : true_
{ {
#if defined(BOOST_MSVC) && BOOST_MSVC < 1300 #if defined(BOOST_MSVC) && BOOST_MSVC < 1300
using true_c::value; using true_::value;
#endif #endif
}; };

View File

@@ -19,12 +19,12 @@
#include "boost/mpl/aux_/iter_fold_if_impl.hpp" #include "boost/mpl/aux_/iter_fold_if_impl.hpp"
#include "boost/mpl/aux_/iter_apply.hpp" #include "boost/mpl/aux_/iter_apply.hpp"
#include "boost/mpl/logical/and.hpp" #include "boost/mpl/and.hpp"
#include "boost/mpl/logical/not.hpp" #include "boost/mpl/not.hpp"
#include "boost/mpl/begin_end.hpp" #include "boost/mpl/begin_end.hpp"
#include "boost/mpl/next.hpp" #include "boost/mpl/next.hpp"
#include "boost/mpl/always.hpp" #include "boost/mpl/always.hpp"
#include "boost/mpl/bool_c.hpp" #include "boost/mpl/bool.hpp"
#include "boost/mpl/lambda.hpp" #include "boost/mpl/lambda.hpp"
#include "boost/mpl/bind.hpp" #include "boost/mpl/bind.hpp"
#include "boost/mpl/apply.hpp" #include "boost/mpl/apply.hpp"
@@ -51,9 +51,9 @@ struct equal_pred
> >
struct apply struct apply
{ {
typedef typename logical_and< typedef typename and_<
logical_not< is_same<Iterator1,LastIterator1> > not_< is_same<Iterator1,LastIterator1> >
, logical_not< is_same<Iterator2,LastIterator2> > , not_< is_same<Iterator2,LastIterator2> >
, aux::iter_apply2<Predicate,Iterator1,Iterator2> , aux::iter_apply2<Predicate,Iterator1,Iterator2>
>::type type; >::type type;
}; };
@@ -81,12 +81,12 @@ struct equal
, next<> , next<>
, aux::equal_pred<pred_,last1_,last2_> , aux::equal_pred<pred_,last1_,last2_>
, void_ , void_
, always<false_c> , always<false_>
> fold_; > fold_;
typedef typename fold_::iterator iter1_; typedef typename fold_::iterator iter1_;
typedef typename fold_::state iter2_; typedef typename fold_::state iter2_;
typedef logical_and< typedef and_<
is_same<iter1_,last1_> is_same<iter1_,last1_>
, is_same<iter2_,last2_> , is_same<iter2_,last2_>
> result_; > result_;

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/comparison/equal_to.hpp header file #ifndef BOOST_MPL_EQUAL_TO_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_EQUAL_TO_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/equal_to.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,11 +15,10 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#ifndef BOOST_MPL_COMPARISON_EQUAL_TO_HPP_INCLUDED #include "boost/mpl/bool.hpp"
#define BOOST_MPL_COMPARISON_EQUAL_TO_HPP_INCLUDED
#include "boost/mpl/bool_c.hpp"
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/value_wknd.hpp" #include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/void_spec.hpp"
@@ -39,9 +40,9 @@ struct equal_to
)); ));
#if !defined(__BORLANDC__) #if !defined(__BORLANDC__)
typedef bool_c<value> type; typedef bool_<value> type;
#else #else
typedef bool_c<( typedef bool_<(
BOOST_MPL_AUX_VALUE_WKND(T1)::value BOOST_MPL_AUX_VALUE_WKND(T1)::value
== BOOST_MPL_AUX_VALUE_WKND(T2)::value == BOOST_MPL_AUX_VALUE_WKND(T2)::value
)> type; )> type;
@@ -69,4 +70,4 @@ struct eq
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_COMPARISON_EQUAL_TO_HPP_INCLUDED #endif // BOOST_MPL_EQUAL_TO_HPP_INCLUDED

View File

@@ -19,8 +19,8 @@
#include "boost/mpl/aux_/iter_fold_if_impl.hpp" #include "boost/mpl/aux_/iter_fold_if_impl.hpp"
#include "boost/mpl/aux_/iter_apply.hpp" #include "boost/mpl/aux_/iter_apply.hpp"
#include "boost/mpl/logical/or.hpp" #include "boost/mpl/or.hpp"
#include "boost/mpl/logical/not.hpp" #include "boost/mpl/not.hpp"
#include "boost/mpl/begin_end.hpp" #include "boost/mpl/begin_end.hpp"
#include "boost/mpl/always.hpp" #include "boost/mpl/always.hpp"
#include "boost/mpl/lambda.hpp" #include "boost/mpl/lambda.hpp"
@@ -45,7 +45,7 @@ struct find_if_pred
> >
struct apply struct apply
{ {
typedef typename logical_not< logical_or< typedef typename not_< or_<
is_same<Iterator,LastIterator> is_same<Iterator,LastIterator>
, aux::iter_apply1<Predicate,Iterator> , aux::iter_apply1<Predicate,Iterator>
> >::type type; > >::type type;
@@ -72,7 +72,7 @@ struct find_if
, mpl::arg<1> , mpl::arg<1>
, aux::find_if_pred<last_> , aux::find_if_pred<last_>
, void , void
, always<false_c> , always<false_>
>::iterator type; >::iterator type;
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate)) BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate))

View File

@@ -19,7 +19,7 @@
#include "boost/mpl/begin_end.hpp" #include "boost/mpl/begin_end.hpp"
#include "boost/mpl/apply.hpp" #include "boost/mpl/apply.hpp"
#include "boost/mpl/bool_c.hpp" #include "boost/mpl/bool.hpp"
#include "boost/mpl/lambda.hpp" #include "boost/mpl/lambda.hpp"
#include "boost/mpl/identity.hpp" #include "boost/mpl/identity.hpp"
#include "boost/mpl/aux_/unwrap.hpp" #include "boost/mpl/aux_/unwrap.hpp"

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/comparison/greater.hpp header file #ifndef BOOST_MPL_GREATER_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_GREATER_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/greater.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,11 +15,10 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#ifndef BOOST_MPL_COMPARISON_GREATER_HPP_INCLUDED #include "boost/mpl/bool.hpp"
#define BOOST_MPL_COMPARISON_GREATER_HPP_INCLUDED
#include "boost/mpl/bool_c.hpp"
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/value_wknd.hpp" #include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/void_spec.hpp"
@@ -39,9 +40,9 @@ struct greater
)); ));
#if !defined(__BORLANDC__) #if !defined(__BORLANDC__)
typedef bool_c<value> type; typedef bool_<value> type;
#else #else
typedef bool_c<( typedef bool_<(
(BOOST_MPL_AUX_VALUE_WKND(T1)::value) (BOOST_MPL_AUX_VALUE_WKND(T1)::value)
> (BOOST_MPL_AUX_VALUE_WKND(T2)::value) > (BOOST_MPL_AUX_VALUE_WKND(T2)::value)
)> type; )> type;
@@ -69,4 +70,4 @@ struct gt
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_COMPARISON_GREATER_HPP_INCLUDED #endif // BOOST_MPL_GREATER_HPP_INCLUDED

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/comparison/greater_equal.hpp header file #ifndef BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/greater_equal.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,11 +15,10 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#ifndef BOOST_MPL_COMPARISON_GREATER_EQUAL_HPP_INCLUDED #include "boost/mpl/bool.hpp"
#define BOOST_MPL_COMPARISON_GREATER_EQUAL_HPP_INCLUDED
#include "boost/mpl/bool_c.hpp"
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/value_wknd.hpp" #include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/void_spec.hpp"
@@ -39,9 +40,9 @@ struct greater_equal
)); ));
#if !defined(__BORLANDC__) #if !defined(__BORLANDC__)
typedef bool_c<value> type; typedef bool_<value> type;
#else #else
typedef bool_c<( typedef bool_<(
BOOST_MPL_AUX_VALUE_WKND(T1)::value BOOST_MPL_AUX_VALUE_WKND(T1)::value
>= BOOST_MPL_AUX_VALUE_WKND(T2)::value >= BOOST_MPL_AUX_VALUE_WKND(T2)::value
)> type; )> type;
@@ -56,12 +57,17 @@ template< long N >
struct ge struct ge
{ {
template< typename T > struct apply template< typename T > struct apply
#if !defined(__BORLANDC__)
: greater_equal< T,integral_c<long,N> > : greater_equal< T,integral_c<long,N> >
{ {
#else
{
typedef typename greater_equal< T,integral_c<long,N> >::type type;
#endif
}; };
}; };
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_COMPARISON_GREATER_EQUAL_HPP_INCLUDED #endif // BOOST_MPL_GREATER_EQUAL_HPP_INCLUDED

24
include/boost/mpl/int.hpp Normal file
View File

@@ -0,0 +1,24 @@
#ifndef BOOST_MPL_INT_HPP_INCLUDED
#define BOOST_MPL_INT_HPP_INCLUDED
// + file: boost/mpl/int.hpp
// + last modified: 27/jan/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#define AUX_WRAPPER_VALUE_TYPE int
#include "boost/mpl/aux_/integral_wrapper.hpp"
#endif // BOOST_MPL_INT_HPP_INCLUDED

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost/mpl/intergal_c.hpp header file #ifndef BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/integral_c.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,63 +15,29 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
#ifndef BOOST_MPL_INTEGRAL_C_HPP_INCLUDED // See http://www.boost.org/libs/mpl for documentation.
#define BOOST_MPL_INTEGRAL_C_HPP_INCLUDED
#include "boost/mpl/aux_/ice_cast.hpp" #include "boost/mpl/aux_/ice_cast.hpp"
#include "boost/mpl/aux_/config/static_constant.hpp" #include "boost/mpl/aux_/config/ctps.hpp"
#include "boost/mpl/aux_/config/workaround.hpp" #include "boost/mpl/aux_/config/workaround.hpp"
namespace boost {
namespace mpl {
template< typename T,
// the type of non-type template arguments may not depend on template arguments
#if BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(53800)) #if BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(53800))
long // the type of non-type template arguments may not depend on template arguments
# define AUX_WRAPPER_PARAMS(N) typename T, long N
#else #else
T # define AUX_WRAPPER_PARAMS(N) typename T, T N
#endif
N >
struct integral_c
{
BOOST_STATIC_CONSTANT(T, value = N);
typedef integral_c type;
typedef T value_type;
// Note that the static_casts below are there to handle the case
// where T is an enum type.
// have to #ifdef here: some compilers don't like the 'N + 1' form (MSVC),
// while some other don't like 'value + 1' (Borland), and some don't like
// either
#if defined(__EDG_VERSION__) && __EDG_VERSION__ <= 243
private:
BOOST_STATIC_CONSTANT(T, next_value = BOOST_MPL_AUX_ICE_CAST(T, (N + 1)));
BOOST_STATIC_CONSTANT(T, prior_value = BOOST_MPL_AUX_ICE_CAST(T, (N - 1)));
public:
typedef integral_c<T, next_value> next;
typedef integral_c<T, prior_value> prior;
#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x561)) \
|| BOOST_WORKAROUND(__IBMCPP__, BOOST_TESTED_AT(502)) \
|| BOOST_WORKAROUND(__HP_aCC, BOOST_TESTED_AT(53800))
typedef integral_c<T, BOOST_MPL_AUX_ICE_CAST(T, (N + 1))> next;
typedef integral_c<T, BOOST_MPL_AUX_ICE_CAST(T, (N - 1))> prior;
#else
typedef integral_c<T, BOOST_MPL_AUX_ICE_CAST(T, (value + 1))> next;
typedef integral_c<T, BOOST_MPL_AUX_ICE_CAST(T, (value - 1))> prior;
#endif #endif
// enables uniform function call syntax for families of overloaded #define AUX_WRAPPER_NAME integral_c
// functions that return objects of both arithmetic ('int', 'long', #define AUX_WRAPPER_VALUE_TYPE T
// 'double', etc.) and 'integral_c<..>' types (for an example, see #define AUX_WRAPPER_INST(value) AUX_WRAPPER_NAME< T, value >
// "mpl/example/power.cpp") #include "boost/mpl/aux_/integral_wrapper.hpp"
operator T() const { return this->value; }
};
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \ #if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
&& !BOOST_WORKAROUND(__BORLANDC__, <= 0x551) && !BOOST_WORKAROUND(__BORLANDC__, <= 0x551)
namespace boost { namespace mpl {
// 'bool' constant doesn't have 'next'/'prior' members // 'bool' constant doesn't have 'next'/'prior' members
template< bool C > template< bool C >
struct integral_c<bool, C> struct integral_c<bool, C>
@@ -78,9 +46,7 @@ struct integral_c<bool, C>
typedef integral_c type; typedef integral_c type;
operator bool() const { return this->value; } operator bool() const { return this->value; }
}; };
}}
#endif #endif
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_INTEGRAL_C_HPP_INCLUDED #endif // BOOST_MPL_INTEGRAL_C_HPP_INCLUDED

View File

@@ -18,7 +18,7 @@
#define BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED #define BOOST_MPL_IS_PLACEHOLDER_HPP_INCLUDED
#include "boost/mpl/arg_fwd.hpp" #include "boost/mpl/arg_fwd.hpp"
#include "boost/mpl/bool_c.hpp" #include "boost/mpl/bool.hpp"
#include "boost/mpl/aux_/yes_no.hpp" #include "boost/mpl/aux_/yes_no.hpp"
#include "boost/mpl/aux_/config/ctps.hpp" #include "boost/mpl/aux_/config/ctps.hpp"
#include "boost/mpl/aux_/config/nttp.hpp" #include "boost/mpl/aux_/config/nttp.hpp"
@@ -29,13 +29,13 @@ namespace boost { namespace mpl {
template< typename T > template< typename T >
struct is_placeholder struct is_placeholder
: bool_c<false> : bool_<false>
{ {
}; };
template< BOOST_MPL_AUX_NTTP_DECL(int, N) > template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
struct is_placeholder< arg<N> > struct is_placeholder< arg<N> >
: bool_c<true> : bool_<true>
{ {
}; };

View File

@@ -17,11 +17,11 @@
#ifndef BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED #ifndef BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
#define BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED #define BOOST_MPL_IS_SEQUENCE_HPP_INCLUDED
#include "boost/mpl/logical/not.hpp" #include "boost/mpl/not.hpp"
#include "boost/mpl/logical/or.hpp" #include "boost/mpl/or.hpp"
#include "boost/mpl/begin_end.hpp" #include "boost/mpl/begin_end.hpp"
#include "boost/mpl/if.hpp" #include "boost/mpl/if.hpp"
#include "boost/mpl/bool_c.hpp" #include "boost/mpl/bool.hpp"
#include "boost/mpl/sequence_tag_fwd.hpp" #include "boost/mpl/sequence_tag_fwd.hpp"
#include "boost/mpl/identity.hpp" #include "boost/mpl/identity.hpp"
#include "boost/mpl/void.hpp" #include "boost/mpl/void.hpp"
@@ -42,7 +42,7 @@ namespace boost { namespace mpl {
namespace aux { namespace aux {
template< typename T > struct is_sequence_impl template< typename T > struct is_sequence_impl
: logical_or< : or_<
identity< aux::has_tag<T> > identity< aux::has_tag<T> >
, identity< aux::has_begin<T> > , identity< aux::has_begin<T> >
> >
@@ -58,7 +58,7 @@ struct is_sequence
: if_< : if_<
boost::is_class<T> boost::is_class<T>
, aux::is_sequence_impl<T> , aux::is_sequence_impl<T>
, bool_c<false> , bool_<false>
>::type >::type
{ {
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_sequence,(T)) BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_sequence,(T))
@@ -70,7 +70,7 @@ template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
> >
struct is_sequence struct is_sequence
: bool_c<false> : bool_<false>
{ {
}; };
@@ -80,7 +80,7 @@ template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
> >
struct is_sequence struct is_sequence
: logical_not< is_same< typename begin<T>::type, void_ > > : not_< is_same< typename begin<T>::type, void_ > >
{ {
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_sequence,(T)) BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_sequence,(T))
}; };
@@ -89,7 +89,7 @@ struct is_sequence
#if defined(BOOST_MPL_MSVC_60_ETI_BUG) #if defined(BOOST_MPL_MSVC_60_ETI_BUG)
template<> struct is_sequence<int> template<> struct is_sequence<int>
: bool_c<false> : bool_<false>
{ {
}; };
#endif #endif

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/comparison/less.hpp header file #ifndef BOOST_MPL_LESS_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_LESS_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/less.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,11 +15,10 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#ifndef BOOST_MPL_COMPARISON_LESS_HPP_INCLUDED #include "boost/mpl/bool.hpp"
#define BOOST_MPL_COMPARISON_LESS_HPP_INCLUDED
#include "boost/mpl/bool_c.hpp"
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/value_wknd.hpp" #include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/void_spec.hpp"
@@ -39,9 +40,9 @@ struct less
)); ));
#if !defined(__BORLANDC__) #if !defined(__BORLANDC__)
typedef bool_c<value> type; typedef bool_<value> type;
#else #else
typedef bool_c<( typedef bool_<(
(BOOST_MPL_AUX_VALUE_WKND(T1)::value) (BOOST_MPL_AUX_VALUE_WKND(T1)::value)
< (BOOST_MPL_AUX_VALUE_WKND(T2)::value) < (BOOST_MPL_AUX_VALUE_WKND(T2)::value)
)> type; )> type;
@@ -69,4 +70,4 @@ struct lt
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_COMPARISON_LESS_HPP_INCLUDED #endif // BOOST_MPL_LESS_HPP_INCLUDED

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/comparison/less_equal.hpp header file #ifndef BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_LESS_EQUAL_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/less_equal.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,11 +15,10 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#ifndef BOOST_MPL_COMPARISON_LESS_EQUAL_HPP_INCLUDED #include "boost/mpl/bool.hpp"
#define BOOST_MPL_COMPARISON_LESS_EQUAL_HPP_INCLUDED
#include "boost/mpl/bool_c.hpp"
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/value_wknd.hpp" #include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/void_spec.hpp"
@@ -39,9 +40,9 @@ struct less_equal
)); ));
#if !defined(__BORLANDC__) #if !defined(__BORLANDC__)
typedef bool_c<value> type; typedef bool_<value> type;
#else #else
typedef bool_c<( typedef bool_<(
BOOST_MPL_AUX_VALUE_WKND(T1)::value BOOST_MPL_AUX_VALUE_WKND(T1)::value
<= BOOST_MPL_AUX_VALUE_WKND(T2)::value <= BOOST_MPL_AUX_VALUE_WKND(T2)::value
)> type; )> type;
@@ -69,4 +70,4 @@ struct le
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_COMPARISON_LESS_EQUAL_HPP_INCLUDED #endif // BOOST_MPL_LESS_EQUAL_HPP_INCLUDED

View File

@@ -18,7 +18,7 @@
#define BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED #define BOOST_MPL_LIST_AUX_EMPTY_HPP_INCLUDED
#include "boost/mpl/empty_fwd.hpp" #include "boost/mpl/empty_fwd.hpp"
#include "boost/mpl/logical/not.hpp" #include "boost/mpl/not.hpp"
#include "boost/mpl/list/aux_/tag.hpp" #include "boost/mpl/list/aux_/tag.hpp"
namespace boost { namespace boost {
@@ -28,7 +28,7 @@ template<>
struct empty_traits< aux::list_tag > struct empty_traits< aux::list_tag >
{ {
template< typename List > struct algorithm template< typename List > struct algorithm
: logical_not<typename List::size> : not_<typename List::size>
{ {
}; };
}; };

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/logical.hpp header file #ifndef BOOST_MPL_LOGICAL_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_LOGICAL_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/logical.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,12 +15,11 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#ifndef BOOST_MPL_LOGICAL_HPP_INCLUDED #include "boost/mpl/or.hpp"
#define BOOST_MPL_LOGICAL_HPP_INCLUDED #include "boost/mpl/and.hpp"
#include "boost/mpl/not.hpp"
#include "boost/mpl/logical/or.hpp"
#include "boost/mpl/logical/and.hpp"
#include "boost/mpl/logical/not.hpp"
#endif // BOOST_MPL_LOGICAL_HPP_INCLUDED #endif // BOOST_MPL_LOGICAL_HPP_INCLUDED

View File

@@ -0,0 +1,24 @@
#ifndef BOOST_MPL_LONG_HPP_INCLUDED
#define BOOST_MPL_LONG_HPP_INCLUDED
// + file: boost/mpl/long.hpp
// + last modified: 27/jan/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#define AUX_WRAPPER_VALUE_TYPE long
#include "boost/mpl/aux_/integral_wrapper.hpp"
#endif // BOOST_MPL_LONG_HPP_INCLUDED

View File

@@ -17,7 +17,7 @@
#ifndef BOOST_MPL_LOWER_BOUND_HPP_INCLUDED #ifndef BOOST_MPL_LOWER_BOUND_HPP_INCLUDED
#define BOOST_MPL_LOWER_BOUND_HPP_INCLUDED #define BOOST_MPL_LOWER_BOUND_HPP_INCLUDED
#include "boost/mpl/comparison/less.hpp" #include "boost/mpl/less.hpp"
#include "boost/mpl/lambda.hpp" #include "boost/mpl/lambda.hpp"
#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/void_spec.hpp"
@@ -26,20 +26,20 @@
#endif #endif
#if !defined(BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL) #if !defined(BOOST_MPL_CFG_STRIPPED_DOWN_LOWER_BOUND_IMPL)
# include "boost/mpl/arithmetic/minus.hpp" # include "boost/mpl/minus.hpp"
# include "boost/mpl/arithmetic/divides.hpp" # include "boost/mpl/divides.hpp"
# include "boost/mpl/size.hpp" # include "boost/mpl/size.hpp"
# include "boost/mpl/advance.hpp" # include "boost/mpl/advance.hpp"
# include "boost/mpl/begin_end.hpp" # include "boost/mpl/begin_end.hpp"
# include "boost/mpl/integral_c.hpp" # include "boost/mpl/integral_c.hpp"
# include "boost/mpl/int_c.hpp" # include "boost/mpl/int.hpp"
# include "boost/mpl/apply_if.hpp" # include "boost/mpl/apply_if.hpp"
# include "boost/mpl/apply.hpp" # include "boost/mpl/apply.hpp"
# include "boost/mpl/aux_/apply.hpp" # include "boost/mpl/aux_/apply.hpp"
# include "boost/mpl/aux_/deref_wknd.hpp" # include "boost/mpl/aux_/deref_wknd.hpp"
# include "boost/mpl/aux_/value_wknd.hpp" # include "boost/mpl/aux_/value_wknd.hpp"
#else #else
# include "boost/mpl/logical/not.hpp" # include "boost/mpl/not.hpp"
# include "boost/mpl/find.hpp" # include "boost/mpl/find.hpp"
# include "boost/mpl/bind.hpp" # include "boost/mpl/bind.hpp"
#endif #endif
@@ -60,7 +60,7 @@ template<
, typename pred_ = typename lambda<Predicate>::type , typename pred_ = typename lambda<Predicate>::type
> >
struct lower_bound struct lower_bound
: find_if< Sequence, bind1< logical_not<>, bind2<pred_,_,T> > > : find_if< Sequence, bind1< not_<>, bind2<pred_,_,T> > >
{ {
}; };

View File

@@ -17,7 +17,7 @@
#ifndef BOOST_MPL_MATH_IS_EVEN_HPP_INCLUDED #ifndef BOOST_MPL_MATH_IS_EVEN_HPP_INCLUDED
#define BOOST_MPL_MATH_IS_EVEN_HPP_INCLUDED #define BOOST_MPL_MATH_IS_EVEN_HPP_INCLUDED
#include "boost/mpl/bool_c.hpp" #include "boost/mpl/bool.hpp"
#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/void_spec.hpp"
#include "boost/mpl/aux_/lambda_support.hpp" #include "boost/mpl/aux_/lambda_support.hpp"
#include "boost/mpl/aux_/config/eti.hpp" #include "boost/mpl/aux_/config/eti.hpp"
@@ -30,7 +30,7 @@ template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(N) typename BOOST_MPL_AUX_VOID_SPEC_PARAM(N)
> >
struct is_even struct is_even
: bool_c<((N::value % 2) == 0)> : bool_<((N::value % 2) == 0)>
{ {
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_even,(N)) BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_even,(N))
}; };

View File

@@ -17,7 +17,7 @@
#ifndef BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED #ifndef BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED
#define BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED #define BOOST_MPL_MAX_ELEMENT_HPP_INCLUDED
#include "boost/mpl/comparison/less.hpp" #include "boost/mpl/less.hpp"
#include "boost/mpl/iter_fold.hpp" #include "boost/mpl/iter_fold.hpp"
#include "boost/mpl/begin_end.hpp" #include "boost/mpl/begin_end.hpp"
#include "boost/mpl/if.hpp" #include "boost/mpl/if.hpp"

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/arithmetic/minus.hpp header file #ifndef BOOST_MPL_MINUS_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_MINUS_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/minus.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,9 +15,8 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
#ifndef BOOST_MPL_ARITHMETIC_MINUS_HPP_INCLUDED // See http://www.boost.org/libs/mpl for documentation.
#define BOOST_MPL_ARITHMETIC_MINUS_HPP_INCLUDED
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp" #include "boost/mpl/aux_/typeof.hpp"
@@ -67,4 +68,4 @@ BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,minus)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_ARITHMETIC_MINUS_HPP_INCLUDED #endif // BOOST_MPL_MINUS_HPP_INCLUDED

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/arithmetic/modulus.hpp header file #ifndef BOOST_MPL_MODULUS_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_MODULUS_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/modulus.hpp
// Copyright (c) 2111%12 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,9 +15,8 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
#ifndef BOOST_MPL_ARITHMETIC_MODULUS_HPP_INCLUDED // See http://www.boost.org/libs/mpl for documentation.
#define BOOST_MPL_ARITHMETIC_MODULUS_HPP_INCLUDED
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp" #include "boost/mpl/aux_/typeof.hpp"
@@ -69,4 +70,4 @@ BOOST_MPL_AUX_VOID_SPEC(2,modulus)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_ARITHMETIC_MODULUS_HPP_INCLUDED #endif // BOOST_MPL_MODULUS_HPP_INCLUDED

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/arithmetic/multiplies.hpp header file #ifndef BOOST_MPL_MULTIPLIES_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_MULTIPLIES_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/multiplies.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,9 +15,8 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
#ifndef BOOST_MPL_ARITHMETIC_MULTIPLIES_HPP_INCLUDED // See http://www.boost.org/libs/mpl for documentation.
#define BOOST_MPL_ARITHMETIC_MULTIPLIES_HPP_INCLUDED
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp" #include "boost/mpl/aux_/typeof.hpp"
@@ -67,4 +68,4 @@ BOOST_MPL_AUX_VOID_SPEC_EXT(2, 5, multiplies)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_ARITHMETIC_MULTIPLIES_HPP_INCLUDED #endif // BOOST_MPL_MULTIPLIES_HPP_INCLUDED

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/arithmetic/negate.hpp header file #ifndef BOOST_MPL_NEGATE_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_NEGATE_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/negate.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,9 +15,8 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
#ifndef BOOST_MPL_ARITHMETIC_NEGATE_HPP_INCLUDED // See http://www.boost.org/libs/mpl for documentation.
#define BOOST_MPL_ARITHMETIC_NEGATE_HPP_INCLUDED
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp" #include "boost/mpl/aux_/typeof.hpp"
@@ -47,4 +48,4 @@ BOOST_MPL_AUX_VOID_SPEC(1,negate)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_ARITHMETIC_NEGATE_HPP_INCLUDED #endif // BOOST_MPL_NEGATE_HPP_INCLUDED

56
include/boost/mpl/not.hpp Normal file
View File

@@ -0,0 +1,56 @@
#ifndef BOOST_MPL_NOT_HPP_INCLUDED
#define BOOST_MPL_NOT_HPP_INCLUDED
// + file: boost/mpl/not.hpp
// + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#include "boost/mpl/bool.hpp"
#include "boost/mpl/aux_/nested_type_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp"
#include "boost/mpl/aux_/lambda_support.hpp"
namespace boost {
namespace mpl {
namespace aux {
template< long C_ > // 'long' is intentional here
struct not_impl
: bool_<!C_>
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
>
struct not_
: aux::not_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T)::value
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,not_,(T))
};
BOOST_MPL_AUX_VOID_SPEC(1,not_)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_NOT_HPP_INCLUDED

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/comparison/not_equal_to.hpp header file #ifndef BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/not_equal_to.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,11 +15,10 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#ifndef BOOST_MPL_COMPARISON_NOT_EQUAL_TO_HPP_INCLUDED #include "boost/mpl/bool.hpp"
#define BOOST_MPL_COMPARISON_NOT_EQUAL_TO_HPP_INCLUDED
#include "boost/mpl/bool_c.hpp"
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/value_wknd.hpp" #include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/void_spec.hpp"
@@ -39,9 +40,9 @@ struct not_equal_to
)); ));
#if !defined(__BORLANDC__) #if !defined(__BORLANDC__)
typedef bool_c<value> type; typedef bool_<value> type;
#else #else
typedef bool_c<( typedef bool_<(
BOOST_MPL_AUX_VALUE_WKND(T1)::value BOOST_MPL_AUX_VALUE_WKND(T1)::value
!= BOOST_MPL_AUX_VALUE_WKND(T2)::value != BOOST_MPL_AUX_VALUE_WKND(T2)::value
)> type; )> type;
@@ -69,4 +70,4 @@ struct ne
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_COMPARISON_NOT_EQUAL_TO_HPP_INCLUDED #endif // BOOST_MPL_NOT_EQUAL_TO_HPP_INCLUDED

42
include/boost/mpl/or.hpp Normal file
View File

@@ -0,0 +1,42 @@
#ifndef BOOST_MPL_OR_HPP_INCLUDED
#define BOOST_MPL_OR_HPP_INCLUDED
// + file: boost/mpl/or.hpp
// + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#include "boost/mpl/aux_/config/use_preprocessed.hpp"
#if !defined(BOOST_MPL_NO_PREPROCESSED_HEADERS) \
&& !defined(BOOST_MPL_PREPROCESSING_MODE)
# include "boost/mpl/bool.hpp"
# include "boost/mpl/aux_/nested_type_wknd.hpp"
# include "boost/mpl/aux_/void_spec.hpp"
# include "boost/mpl/aux_/lambda_support.hpp"
# define BOOST_MPL_PREPROCESSED_HEADER or.hpp
# include "boost/mpl/aux_/include_preprocessed.hpp"
#else
# define AUX_LOGICAL_OP_NAME or_
# define AUX_LOGICAL_OP_VALUE1 true
# define AUX_LOGICAL_OP_VALUE2 false
# include "boost/mpl/aux_/logical_op.hpp"
#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS
#endif // BOOST_MPL_OR_HPP_INCLUDED

View File

@@ -0,0 +1,80 @@
#if !defined(BOOST_PP_IS_ITERATING)
///// header body
#ifndef BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
#define BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
// + file: boost/mpl/placeholders.hpp
// + last modified: 25/feb/03
// Copyright (c) 2001-03
// Peter Dimov, Aleksey Gurtovoy
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include "boost/mpl/arg.hpp"
#endif
#include "boost/mpl/aux_/config/use_preprocessed.hpp"
#if !defined(BOOST_MPL_NO_PREPROCESSED_HEADERS) \
&& !defined(BOOST_MPL_PREPROCESSING_MODE)
# define BOOST_MPL_PREPROCESSED_HEADER placeholders.hpp
# include "boost/mpl/aux_/include_preprocessed.hpp"
#else
# include "boost/mpl/aux_/config/nttp.hpp"
# include "boost/mpl/limits/arity.hpp"
# include "boost/preprocessor/iterate.hpp"
# include "boost/preprocessor/cat.hpp"
namespace boost {
namespace mpl {
// watch out for GNU gettext users, who #define _(x)
#if !defined(_) || defined(BOOST_MPL_NO_UNNAMED_PLACEHOLDER_SUPPORT)
typedef arg<-1> _;
namespace placeholders {
using boost::mpl::_;
}
#endif
//: agurt, 17/mar/02: one more placeholder for the last 'apply#'
//: specialization
#define BOOST_PP_ITERATION_PARAMS_1 \
(3,(1, BOOST_MPL_METAFUNCTION_MAX_ARITY + 1, "boost/mpl/placeholders.hpp"))
#include BOOST_PP_ITERATE()
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS
#endif // BOOST_MPL_PLACEHOLDERS_HPP_INCLUDED
///// iteration
#else
#define i BOOST_PP_FRAME_ITERATION(1)
typedef arg<i> BOOST_PP_CAT(_,i);
namespace placeholders {
using boost::mpl::BOOST_PP_CAT(_,i);
}
#undef i
#endif // BOOST_PP_IS_ITERATING

View File

@@ -1,9 +1,11 @@
//-----------------------------------------------------------------------------
// boost mpl/arithmetic/plus.hpp header file #ifndef BOOST_MPL_PLUS_HPP_INCLUDED
// See http://www.boost.org for updates, documentation, and revision history. #define BOOST_MPL_PLUS_HPP_INCLUDED
//-----------------------------------------------------------------------------
// // + file: boost/mpl/plus.hpp
// Copyright (c) 2000-02 // + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy // Aleksey Gurtovoy
// //
// Permission to use, copy, modify, distribute and sell this software // Permission to use, copy, modify, distribute and sell this software
@@ -13,9 +15,8 @@
// supporting documentation. No representations are made about the // supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is" // suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty. // without express or implied warranty.
//
#ifndef BOOST_MPL_ARITHMETIC_PLUS_HPP_INCLUDED // See http://www.boost.org/libs/mpl for documentation.
#define BOOST_MPL_ARITHMETIC_PLUS_HPP_INCLUDED
#include "boost/mpl/integral_c.hpp" #include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp" #include "boost/mpl/aux_/typeof.hpp"
@@ -67,4 +68,4 @@ BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,plus)
} // namespace mpl } // namespace mpl
} // namespace boost } // namespace boost
#endif // BOOST_MPL_ARITHMETIC_PLUS_HPP_INCLUDED #endif // BOOST_MPL_PLUS_HPP_INCLUDED

View File

@@ -17,7 +17,7 @@
#ifndef BOOST_MPL_SAME_AS_HPP_INCLUDED #ifndef BOOST_MPL_SAME_AS_HPP_INCLUDED
#define BOOST_MPL_SAME_AS_HPP_INCLUDED #define BOOST_MPL_SAME_AS_HPP_INCLUDED
#include "boost/mpl/logical/not.hpp" #include "boost/mpl/not.hpp"
#include "boost/mpl/aux_/lambda_spec.hpp" #include "boost/mpl/aux_/lambda_spec.hpp"
#include "boost/type_traits/is_same.hpp" #include "boost/type_traits/is_same.hpp"
@@ -43,11 +43,11 @@ struct not_same_as
{ {
template< typename T2 > struct apply template< typename T2 > struct apply
#if !defined(__BORLANDC__) || (__BORLANDC__ > 0x51 && defined(BOOST_STRICT_CONFIG)) #if !defined(__BORLANDC__) || (__BORLANDC__ > 0x51 && defined(BOOST_STRICT_CONFIG))
: logical_not< is_same<T1,T2> > : not_< is_same<T1,T2> >
{ {
#else #else
{ {
typedef typename logical_not< is_same<T1,T2> >::type type; typedef typename not_< is_same<T1,T2> >::type type;
#endif #endif
}; };
}; };

View File

@@ -0,0 +1,64 @@
#ifndef BOOST_MPL_SHIFT_LEFT_HPP_INCLUDED
#define BOOST_MPL_SHIFT_LEFT_HPP_INCLUDED
// + file: boost/mpl/shift_left.hpp
// + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy, Jaap Suter
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp"
#include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp"
#include "boost/mpl/aux_/lambda_support.hpp"
#include "boost/config.hpp"
namespace boost {
namespace mpl {
template<
typename T, T N, typename ShiftT, ShiftT Shift
>
struct shift_left_c
{
BOOST_STATIC_CONSTANT(T, value = (N << Shift));
#if !defined(__BORLANDC__)
typedef integral_c<T,value> type;
#else
typedef integral_c<T,(N << Shift)> type;
#endif
};
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Shift)
>
struct shift_left
: shift_left_c<
BOOST_MPL_AUX_TYPEOF(T, T::value)
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T)::value
, BOOST_MPL_AUX_TYPEOF(Shift, Shift::value)
, BOOST_MPL_AUX_MSVC_VALUE_WKND(Shift)::value
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_left, (T,Shift))
};
BOOST_MPL_AUX_VOID_SPEC(2,shift_left)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_SHIFT_LEFT_HPP_INCLUDED

View File

@@ -0,0 +1,64 @@
#ifndef BOOST_MPL_SHIFT_RIGHT_HPP_INCLUDED
#define BOOST_MPL_SHIFT_RIGHT_HPP_INCLUDED
// + file: boost/mpl/shift_right.hpp
// + last modified: 25/feb/03
// Copyright (c) 2000-03
// Aleksey Gurtovoy, Jaap Suter
//
// Permission to use, copy, modify, distribute and sell this software
// and its documentation for any purpose is hereby granted without fee,
// provided that the above copyright notice appears in all copies and
// that both the copyright notice and this permission notice appear in
// supporting documentation. No representations are made about the
// suitability of this software for any purpose. It is provided "as is"
// without express or implied warranty.
//
// See http://www.boost.org/libs/mpl for documentation.
#include "boost/mpl/integral_c.hpp"
#include "boost/mpl/aux_/typeof.hpp"
#include "boost/mpl/aux_/value_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp"
#include "boost/mpl/aux_/lambda_support.hpp"
#include "boost/config.hpp"
namespace boost {
namespace mpl {
template<
typename T, T N, typename ShiftT, ShiftT Shift
>
struct shift_right_c
{
BOOST_STATIC_CONSTANT(T, value = (N >> Shift));
#if !defined(__BORLANDC__)
typedef integral_c<T,value> type;
#else
typedef integral_c<T,(N >> Shift)> type;
#endif
};
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
, typename BOOST_MPL_AUX_VOID_SPEC_PARAM(Shift)
>
struct shift_right
: shift_right_c<
BOOST_MPL_AUX_TYPEOF(T, T::value)
, BOOST_MPL_AUX_MSVC_VALUE_WKND(T)::value
, BOOST_MPL_AUX_TYPEOF(Shift, Shift::value)
, BOOST_MPL_AUX_MSVC_VALUE_WKND(Shift)::value
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(2, shift_right, (T,Shift))
};
BOOST_MPL_AUX_VOID_SPEC(2,shift_right)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_SHIFT_RIGHT_HPP_INCLUDED

View File

@@ -17,7 +17,7 @@
#ifndef BOOST_MPL_UPPER_BOUND_HPP_INCLUDED #ifndef BOOST_MPL_UPPER_BOUND_HPP_INCLUDED
#define BOOST_MPL_UPPER_BOUND_HPP_INCLUDED #define BOOST_MPL_UPPER_BOUND_HPP_INCLUDED
#include "boost/mpl/comparison/less.hpp" #include "boost/mpl/less.hpp"
#include "boost/mpl/lambda.hpp" #include "boost/mpl/lambda.hpp"
#include "boost/mpl/aux_/void_spec.hpp" #include "boost/mpl/aux_/void_spec.hpp"
@@ -26,13 +26,13 @@
#endif #endif
#if !defined(BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL) #if !defined(BOOST_MPL_CFG_STRIPPED_DOWN_UPPER_BOUND_IMPL)
# include "boost/mpl/arithmetic/minus.hpp" # include "boost/mpl/minus.hpp"
# include "boost/mpl/arithmetic/divides.hpp" # include "boost/mpl/divides.hpp"
# include "boost/mpl/size.hpp" # include "boost/mpl/size.hpp"
# include "boost/mpl/advance.hpp" # include "boost/mpl/advance.hpp"
# include "boost/mpl/begin_end.hpp" # include "boost/mpl/begin_end.hpp"
# include "boost/mpl/integral_c.hpp" # include "boost/mpl/integral_c.hpp"
# include "boost/mpl/int_c.hpp" # include "boost/mpl/int.hpp"
# include "boost/mpl/apply_if.hpp" # include "boost/mpl/apply_if.hpp"
# include "boost/mpl/apply.hpp" # include "boost/mpl/apply.hpp"
# include "boost/mpl/aux_/apply.hpp" # include "boost/mpl/aux_/apply.hpp"

View File

@@ -17,12 +17,12 @@
#ifndef BOOST_MPL_V2_1_INT_HPP_INCLUDED #ifndef BOOST_MPL_V2_1_INT_HPP_INCLUDED
#define BOOST_MPL_V2_1_INT_HPP_INCLUDED #define BOOST_MPL_V2_1_INT_HPP_INCLUDED
#include "boost/mpl/int_c.hpp" #include "boost/mpl/int.hpp"
#include "boost/mpl/aux_/config/nttp.hpp" #include "boost/mpl/aux_/config/nttp.hpp"
namespace boost { namespace mpl { namespace v2_1 { namespace boost { namespace mpl { namespace v2_1 {
template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_ : mpl::int_c<N> {}; template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_ : mpl::int_<N> {};
}}} // namespace boost::mpl::v2_1 }}} // namespace boost::mpl::v2_1

View File

@@ -18,8 +18,8 @@
#define BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED #define BOOST_MPL_VECTOR_AUX_EMPTY_HPP_INCLUDED
#include "boost/mpl/empty_fwd.hpp" #include "boost/mpl/empty_fwd.hpp"
#include "boost/mpl/logical/not.hpp" #include "boost/mpl/not.hpp"
#include "boost/mpl/bool_c.hpp" #include "boost/mpl/bool.hpp"
#include "boost/mpl/vector/aux_/tag.hpp" #include "boost/mpl/vector/aux_/tag.hpp"
#include "boost/mpl/aux_/config/vector.hpp" #include "boost/mpl/aux_/config/vector.hpp"
#include "boost/config.hpp" #include "boost/config.hpp"
@@ -33,7 +33,7 @@ template<>
struct empty_traits< aux::vector_tag > struct empty_traits< aux::vector_tag >
{ {
template< typename Vector > struct algorithm template< typename Vector > struct algorithm
: logical_not< typename Vector::size > : not_< typename Vector::size >
{ {
}; };
}; };
@@ -44,7 +44,7 @@ template<>
struct empty_traits< aux::vector_tag<0> > struct empty_traits< aux::vector_tag<0> >
{ {
template< typename Vector > struct algorithm template< typename Vector > struct algorithm
: true_c : true_
{ {
}; };
}; };
@@ -55,7 +55,7 @@ template< long N >
struct empty_traits< aux::vector_tag<N> > struct empty_traits< aux::vector_tag<N> >
{ {
template< typename Vector > struct algorithm template< typename Vector > struct algorithm
: false_c : false_
{ {
}; };
}; };

Some files were not shown because too many files have changed in this diff Show More