pre-release cleanup

[SVN r17656]
This commit is contained in:
Aleksey Gurtovoy
2003-02-26 09:42:38 +00:00
parent e98c65986e
commit 3d1f1d9b8f
24 changed files with 0 additions and 1324 deletions

View File

@@ -70,10 +70,6 @@ struct name< BOOST_MPL_AUX_VOID_SPEC_PARAMS(i) > \
{ \
}; \
}; \
\
namespace v2_1 { \
/*struct name : ::boost::mpl::name<> {}; breaks mpl::if_<...> */ \
} \
/**/
#if defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)

View File

@@ -1,40 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/bool_c.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_BOOL_C_HPP_INCLUDED
#define BOOST_MPL_BOOL_C_HPP_INCLUDED
#include "boost/mpl/aux_/config/static_constant.hpp"
namespace boost {
namespace mpl {
template< bool C > struct bool_c
{
BOOST_STATIC_CONSTANT(bool, value = C);
typedef bool_c type;
typedef bool value_type;
operator bool() const { return this->value; }
};
// shorcuts
typedef bool_c<true> true_c;
typedef bool_c<false> false_c;
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_BOOL_C_HPP_INCLUDED

View File

@@ -1,27 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/compose.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_COMPOSE_HPP_INCLUDED
#define BOOST_MPL_COMPOSE_HPP_INCLUDED
#include "boost/mpl/compose/f_gx.hpp"
#include "boost/mpl/compose/f_gx_hx.hpp"
#include "boost/mpl/compose/f_gx_hy.hpp"
#include "boost/mpl/compose/f_gxy.hpp"
#include "boost/mpl/compose/f_x_hy.hpp"
#include "boost/mpl/compose/f_x_x.hpp"
#endif // BOOST_MPL_COMPOSE_HPP_INCLUDED

View File

@@ -1,61 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/compose.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_COMPOSE_F_GX_HPP_INCLXDED
#define BOOST_MPL_COMPOSE_F_GX_HPP_INCLXDED
#include "boost/mpl/apply.hpp"
#include "boost/mpl/aux_/lambda_spec.hpp"
namespace boost {
namespace mpl {
namespace aux {
template<
typename F
, typename G
, typename X
>
struct f_gx
{
private:
typedef typename apply1<G,X>::type P;
public:
typedef apply1<F,P> type;
};
} // namespace aux
template<
typename F
, typename G
>
struct compose_f_gx
{
template< typename X > struct apply
: aux::f_gx<F,G,X>::type
{
};
};
BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(2,compose_f_gx)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_COMPOSE_F_GX_HPP_INCLXDED

View File

@@ -1,64 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/compose/f_gx_hx.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_COMPOSE_F_GX_HX_HPP_INCLXDED
#define BOOST_MPL_COMPOSE_F_GX_HX_HPP_INCLXDED
#include "boost/mpl/apply.hpp"
#include "boost/mpl/aux_/lambda_spec.hpp"
namespace boost {
namespace mpl {
namespace aux {
template<
typename F
, typename G
, typename H
, typename X
>
struct f_gx_hx
{
private:
typedef typename apply1<G,X>::type P1;
typedef typename apply1<H,X>::type P2;
public:
typedef apply2<F,P1,P2> type;
};
} // namespace aux
template<
typename F
, typename G
, typename H
>
struct compose_f_gx_hx
{
template< typename X > struct apply
: aux::f_gx_hx<F,G,H,X>::type
{
};
};
BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3,compose_f_gx_hx)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_COMPOSE_F_GX_HX_HPP_INCLXDED

View File

@@ -1,65 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/compose/f_gx_hy.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_COMPOSE_F_GX_HY_HPP_INCLUDED
#define BOOST_MPL_COMPOSE_F_GX_HY_HPP_INCLUDED
#include "boost/mpl/apply.hpp"
#include "boost/mpl/aux_/lambda_spec.hpp"
namespace boost {
namespace mpl {
namespace aux {
template<
typename F
, typename G
, typename H
, typename X
, typename Y
>
struct f_gx_hy
{
private:
typedef typename apply1<G,X>::type P1;
typedef typename apply1<H,Y>::type P2;
public:
typedef apply2<F,P1,P2> type;
};
} // namespace aux
template<
typename F
, typename G
, typename H
>
struct compose_f_gx_hy
{
template< typename X, typename Y > struct apply
: aux::f_gx_hy<F,G,H,X,Y>
{
};
};
BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(3,compose_f_gx_hy)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_COMPOSE_F_GX_HY_HPP_INCLUDED

View File

@@ -1,75 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/compose/f_gxy.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_COMPOSE_F_GXY_HPP_INCLUDED
#define BOOST_MPL_COMPOSE_F_GXY_HPP_INCLUDED
#include "boost/mpl/apply.hpp"
#include "boost/mpl/aux_/lambda_spec.hpp"
namespace boost {
namespace mpl {
namespace aux {
template<
typename F
, typename G
, typename X
, typename Y
>
struct f_gxy
{
private:
typedef typename apply2<G,X,Y>::type P;
public:
typedef apply1<F,P> type;
};
} // namespace aux
template<
typename F
, typename G
>
struct compose_f_gxy
{
template< typename X, typename Y > struct apply
: aux::f_gxy<F,G,X,Y>::type
{
};
};
template<
typename F
, typename G
>
struct compose_f_gyx
{
template< typename X, typename Y > struct apply
: aux::f_gxy<F,G,Y,X>::type
{
};
};
BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(2,compose_f_gxy)
BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(2,compose_f_gyx)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_COMPOSE_F_GXY_HPP_INCLUDED

View File

@@ -1,62 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/compose/f_x_hy.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_COMPOSE_F_X_HY_HPP_INCLUDED
#define BOOST_MPL_COMPOSE_F_X_HY_HPP_INCLUDED
#include "boost/mpl/apply.hpp"
#include "boost/mpl/aux_/lambda_spec.hpp"
namespace boost {
namespace mpl {
namespace aux {
template<
typename F
, typename H
, typename X
, typename Y
>
struct f_x_hy
{
private:
typedef typename apply1<H,Y>::type P2;
public:
typedef apply2<F,X,P2> type;
};
} // namespace aux
template<
typename F
, typename H
>
struct compose_f_x_hy
{
template< typename X, typename Y > struct apply
: aux::f_x_hy<F,H,X,Y>::type
{
};
};
BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(2,compose_f_x_hy)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_COMPOSE_F_X_HY_HPP_INCLUDED

View File

@@ -1,55 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/compose/f_x_x.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_COMPOSE_F_X_X_HPP_INCLXDED
#define BOOST_MPL_COMPOSE_F_X_X_HPP_INCLXDED
#include "boost/mpl/apply.hpp"
#include "boost/mpl/aux_/lambda_spec.hpp"
namespace boost {
namespace mpl {
namespace aux {
template<
typename F
, typename X
>
struct f_x_x
{
typedef apply2<F,X,X> type;
};
} // namespace aux
template<
typename F
>
struct compose_f_x_x
{
template< typename X > struct apply
: aux::f_x_x<F,X>::type
{
};
};
BOOST_MPL_AUX_PASS_THROUGH_LAMBDA_SPEC(1,compose_f_x_x)
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_COMPOSE_F_X_X_HPP_INCLXDED

View File

@@ -1,58 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/int_c.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_INT_C_HPP_INCLUDED
#define BOOST_MPL_INT_C_HPP_INCLUDED
#include "boost/mpl/aux_/config/nttp.hpp"
#include "boost/mpl/aux_/config/static_constant.hpp"
namespace boost {
namespace mpl {
template< BOOST_MPL_AUX_NTTP_DECL(int, N) >
struct int_c
{
BOOST_STATIC_CONSTANT(int, value = N);
typedef int_c type;
typedef int 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 defined(__EDG_VERSION__) && __EDG_VERSION__ <= 243
private:
BOOST_STATIC_CONSTANT(int, next_value = (N + 1));
BOOST_STATIC_CONSTANT(int, prior_value = (N - 1));
public:
typedef int_c<next_value> next;
typedef int_c<prior_value> prior;
#elif defined(__BORLANDC__) && (__BORLANDC__ <= 0x561 || !defined(BOOST_STRICT_CONFIG)) \
|| defined(__IBMCPP__) && (__IBMCPP__ <= 502 || !defined(BOOST_STRICT_CONFIG))
typedef int_c<(N + 1)> next;
typedef int_c<(N - 1)> prior;
#else
typedef int_c<(value + 1)> next;
typedef int_c<(value - 1)> prior;
#endif
operator int() const { return this->value; }
};
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_INT_C_HPP_INCLUDED

View File

@@ -1,131 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/logical/and.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_LOGICAL_AND_HPP_INCLUDED
#define BOOST_MPL_LOGICAL_AND_HPP_INCLUDED
#include "boost/mpl/bool_c.hpp"
#include "boost/mpl/aux_/nested_type_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp"
#include "boost/mpl/aux_/lambda_support.hpp"
#include "boost/config.hpp"
namespace boost {
namespace mpl {
namespace aux {
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
template<
bool C, typename T1, typename T2, typename T3, typename T4
>
struct logical_and_impl
: false_c
{
};
template<
typename T1, typename T2, typename T3, typename T4
>
struct logical_and_impl<true,T1,T2,T3,T4>
: logical_and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value,T2,T3,T4,true_c
>
{
};
template<>
struct logical_and_impl<true,true_c,true_c,true_c,true_c>
: true_c
{
};
#else
template< bool C > struct logical_and_impl
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: false_c
{
};
};
template<> struct logical_and_impl<true>
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: logical_and_impl< BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value >
::template result_<T2,T3,T4,true_c>
{
};
#if defined(BOOST_MSVC) && BOOST_MSVC == 1300
template<>
struct result_<true_c,true_c,true_c,true_c>
: true_c
{
};
};
#else
};
template<>
struct logical_and_impl<true>::result_<true_c,true_c,true_c,true_c>
: true_c
{
};
#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)
, typename T3 = true_c
, typename T4 = true_c
, typename T5 = true_c
>
struct logical_and
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
: aux::logical_and_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value,T2,T3,T4,T5
>
#else
: aux::logical_and_impl< BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value >
::template result_<T2,T3,T4,T5>
#endif
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(5,logical_and,(T1,T2,T3,T4,T5))
};
BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,logical_and)
namespace v2_1 {
struct and_ : mpl::logical_and<> {};
}
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_LOGICAL_AND_HPP_INCLUDED

View File

@@ -1,59 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/logical/not.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_LOGICAL_NOT_HPP_INCLUDED
#define BOOST_MPL_LOGICAL_NOT_HPP_INCLUDED
#include "boost/mpl/bool_c.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 logical_not_impl
: bool_c<!C>
{
};
} // namespace aux
template<
typename BOOST_MPL_AUX_VOID_SPEC_PARAM(T)
>
struct logical_not
: aux::logical_not_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T)::value
>
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,logical_not,(T))
};
BOOST_MPL_AUX_VOID_SPEC(1,logical_not)
namespace v2_1 {
struct not_ : mpl::logical_not<> {};
}
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_LOGICAL_NOT_HPP_INCLUDED

View File

@@ -1,131 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/logical/or.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_LOGICAL_OR_HPP_INCLUDED
#define BOOST_MPL_LOGICAL_OR_HPP_INCLUDED
#include "boost/mpl/bool_c.hpp"
#include "boost/mpl/aux_/nested_type_wknd.hpp"
#include "boost/mpl/aux_/void_spec.hpp"
#include "boost/mpl/aux_/lambda_support.hpp"
#include "boost/config.hpp"
namespace boost {
namespace mpl {
namespace aux {
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
template<
bool C, typename T1, typename T2, typename T3, typename T4
>
struct logical_or_impl
: true_c
{
};
template<
typename T1, typename T2, typename T3, typename T4
>
struct logical_or_impl<false,T1,T2,T3,T4>
: logical_or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value,T2,T3,T4,false_c
>
{
};
template<>
struct logical_or_impl<false,false_c,false_c,false_c,false_c>
: false_c
{
};
#else
template< bool C > struct logical_or_impl
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: true_c
{
};
};
template<> struct logical_or_impl<false>
{
template<
typename T1, typename T2, typename T3, typename T4
>
struct result_
: logical_or_impl< BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value >
::template result_<T2,T3,T4,false_c>
{
};
#if defined(BOOST_MSVC) && BOOST_MSVC == 1300
template<>
struct result_<false_c,false_c,false_c,false_c>
: false_c
{
};
};
#else
};
template<>
struct logical_or_impl<false>::result_<false_c,false_c,false_c,false_c>
: false_c
{
};
#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)
, typename T3 = false_c
, typename T4 = false_c
, typename T5 = false_c
>
struct logical_or
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
: aux::logical_or_impl<
BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value,T2,T3,T4,T5
>
#else
: aux::logical_or_impl< BOOST_MPL_AUX_NESTED_TYPE_WKND(T1)::value>
::template result_<T2,T3,T4,T5>
#endif
{
BOOST_MPL_AUX_LAMBDA_SUPPORT(5,logical_or,(T1,T2,T3,T4,T5))
};
BOOST_MPL_AUX_VOID_SPEC_EXT(2,5,logical_or)
namespace v2_1 {
struct or_ : mpl::logical_or<> {};
}
} // namespace mpl
} // namespace boost
#endif // BOOST_MPL_LOGICAL_OR_HPP_INCLUDED

View File

@@ -1,29 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2001-02
// 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.
#ifndef BOOST_MPL_V2_1_HPP_INCLUDED
#define BOOST_MPL_V2_1_HPP_INCLUDED
#include "boost/mpl/v2_1/apply.hpp"
#include "boost/mpl/v2_1/eval.hpp"
#include "boost/mpl/v2_1/expr.hpp"
#include "boost/mpl/v2_1/int.hpp"
#include "boost/mpl/v2_1/lambda.hpp"
#include "boost/mpl/v2_1/list.hpp"
#include "boost/mpl/v2_1/metafunction.hpp"
#include "boost/mpl/v2_1/type_traits.hpp"
#endif // BOOST_MPL_V2_1_HPP_INCLUDED

View File

@@ -1,62 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1/apply.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_V2_1_APPLY_HPP_INCLUDED
#define BOOST_MPL_V2_1_APPLY_HPP_INCLUDED
#include "boost/mpl/apply.hpp"
#include "boost/mpl/limits/arity.hpp"
#include "boost/mpl/aux_/preprocessor/params.hpp"
#include "boost/mpl/aux_/preprocessor/default_params.hpp"
namespace boost { namespace mpl { namespace v2_1 {
# define AUX_APPLY_PARAMS(param) \
BOOST_MPL_PP_PARAMS( \
BOOST_MPL_METAFUNCTION_MAX_ARITY \
, param \
) \
/**/
# define AUX_APPLY_DEFAULT_PARAMS(param, value) \
BOOST_MPL_PP_DEFAULT_PARAMS( \
BOOST_MPL_METAFUNCTION_MAX_ARITY \
, param \
, value \
) \
/**/
struct apply_impl
{
template<
typename F
, AUX_APPLY_DEFAULT_PARAMS(typename T, mpl::void_)
>
struct apply
: mpl::apply<F, AUX_APPLY_PARAMS(T)>
{
};
};
struct apply_ : apply_impl {};
# undef AUX_APPLY_DEFAULT_PARAMS
# undef AUX_APPLY_PARAMS
}}} // namespace boost::mpl::v2_1
#endif // BOOST_MPL_V2_1_APPLY_HPP_INCLUDED

View File

@@ -1,37 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1/eval.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_V2_1_EVAL_HPP_INCLUDED
#define BOOST_MPL_V2_1_EVAL_HPP_INCLUDED
#include "boost/mpl/v2_1/expr.hpp"
#include "boost/mpl/v2_1/metafunction_base.hpp"
namespace boost { namespace mpl { namespace v2_1 {
template<
typename F
>
struct eval
: expr<F>::type::template apply<>
{
};
}}} // namespace boost::mpl::v2_1
#define EVAL(expr) eval<expr>::type
#endif // BOOST_MPL_V2_1_EVAL_HPP_INCLUDED

View File

@@ -1,108 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1/expr.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2001-02
// 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.
#if !defined(BOOST_PP_IS_ITERATING)
///// header body
#ifndef BOOST_MPL_EXPR_V2_1_HPP_INCLUDED
#define BOOST_MPL_EXPR_V2_1_HPP_INCLUDED
#if !defined(BOOST_MPL_PREPROCESSING_MODE)
# include "boost/mpl/v2_1/expr_fwd.hpp"
# include "boost/mpl/bind.hpp"
#endif
#if 0//!defined(BOOST_MPL_NO_PREPROCESSED_HEADERS) &&
//!defined(BOOST_MPL_PREPROCESSING_MODE)
# define BOOST_MPL_PREPROCESSED_HEADER expr.hpp
# include "boost/mpl/aux_/include_preprocessed.hpp"
#else
# include "boost/mpl/limits/arity.hpp"
# include "boost/mpl/aux_/preprocessor/params.hpp"
# include "boost/mpl/aux_/preprocessor/repeat.hpp"
# include "boost/preprocessor/iterate.hpp"
# include "boost/preprocessor/comma_if.hpp"
# include "boost/preprocessor/inc.hpp"
# include "boost/preprocessor/cat.hpp"
namespace boost { namespace mpl { namespace v2_1 {
# define AUX_EXPR_PARAMS(n, param) \
BOOST_MPL_PP_PARAMS(n, param) \
/**/
# define AUX_EXPR_SPEC_PARAMS(n, F, param) \
F BOOST_PP_COMMA_IF(n) \
BOOST_MPL_PP_PARAMS(n, param) \
/**/
template< typename T > struct expr
{
typedef T type;
};
#define BOOST_PP_ITERATION_PARAMS_1 \
(3,(0, BOOST_MPL_METAFUNCTION_MAX_ARITY, "boost/mpl/v2_1/expr.hpp"))
#include BOOST_PP_ITERATE()
# undef AUX_EXPR_SPEC_PARAMS
# undef AUX_EXPR_PARAMS
}}} // namespace boost::mpl::v2_1
#endif // BOOST_MPL_USE_PREPROCESSED_HEADERS
#endif // BOOST_MPL_EXPR_V2_1_HPP_INCLUDED
///// iteration, depth == 1
#elif BOOST_PP_ITERATION_DEPTH() == 1
#define n BOOST_PP_FRAME_ITERATION(1)
template<
AUX_EXPR_SPEC_PARAMS(n, typename F, typename T)
>
struct expr< F (*)(AUX_EXPR_PARAMS(n, T)) >
{
# define AUX_EXPR_INVOCATION(unused, n, T) \
BOOST_PP_COMMA_IF(n) \
typename expr< BOOST_PP_CAT(T, BOOST_PP_INC(n)) >::type \
/**/
typedef BOOST_PP_CAT(bind,n)<
F
BOOST_PP_COMMA_IF(n) BOOST_MPL_PP_REPEAT(n, AUX_EXPR_INVOCATION, T)
> type;
# undef AUX_EXPR_INVOCATION
};
template<
AUX_EXPR_SPEC_PARAMS(n, typename F, typename T)
>
struct expr< F (AUX_EXPR_PARAMS(n, T)) >
: expr< F (*)(AUX_EXPR_PARAMS(n, T)) >
{
};
#undef n
#endif // BOOST_PP_IS_ITERATING

View File

@@ -1,26 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1/expr_fwd.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2001-02
// 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.
#ifndef BOOST_MPL_EXPR_V2_1_FWD_HPP_INCLUDED
#define BOOST_MPL_EXPR_V2_1_FWD_HPP_INCLUDED
namespace boost { namespace mpl { namespace v2_1 {
template< typename T > struct expr;
}}}
#endif // BOOST_MPL_EXPR_V2_1_FWD_HPP_INCLUDED

View File

@@ -1,29 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1/int.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_V2_1_INT_HPP_INCLUDED
#define BOOST_MPL_V2_1_INT_HPP_INCLUDED
#include "boost/mpl/int.hpp"
#include "boost/mpl/aux_/config/nttp.hpp"
namespace boost { namespace mpl { namespace v2_1 {
template< BOOST_MPL_AUX_NTTP_DECL(int, N) > struct int_ : mpl::int_<N> {};
}}} // namespace boost::mpl::v2_1
#endif // BOOST_MPL_V2_1_INT_HPP_INCLUDED

View File

@@ -1,39 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1/lambda.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2001-02
// 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.
#ifndef BOOST_MPL_V2_1_LAMBDA_HPP_INCLUDED
#define BOOST_MPL_V2_1_LAMBDA_HPP_INCLUDED
#include "boost/mpl/v2_1/expr.hpp"
#include "boost/mpl/protect.hpp"
namespace boost { namespace mpl { namespace v2_1 {
struct lambda;
template<
typename T
>
struct expr< lambda (*)(T) >
{
typedef protect<
typename expr<T>::type
> type;
};
}}} // namespace boost::mpl::v2_1
#endif // BOOST_MPL_V2_1_LAMBDA_HPP_INCLUDED

View File

@@ -1,58 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1/list.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_V2_1_LIST_HPP_INCLUDED
#define BOOST_MPL_V2_1_LIST_HPP_INCLUDED
#include "boost/mpl/list.hpp"
#include "boost/mpl/limits/list.hpp"
#include "boost/preprocessor/enum_params_with_a_default.hpp"
#include "boost/preprocessor/enum_params.hpp"
namespace boost { namespace mpl { namespace v2_1 {
# define AUX_LIST_PARAMS(param) \
BOOST_PP_ENUM_PARAMS( \
BOOST_MPL_LIMIT_LIST_SIZE \
, param \
) \
/**/
# define AUX_LIST_DEFAULT_PARAMS(param, value) \
BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
BOOST_MPL_LIMIT_LIST_SIZE \
, param \
, value \
) \
/**/
struct list
{
template<
AUX_LIST_DEFAULT_PARAMS(typename T, void_)
>
struct apply
: mpl::list< AUX_LIST_PARAMS(T) >
{
};
};
# undef AUX_LIST_DEFAULT_PARAMS
# undef AUX_LIST_PARAMS
}}} // namespace boost::mpl::v2_1
#endif // BOOST_MPL_V2_1_LIST_HPP_INCLUDED

View File

@@ -1,47 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1/metafunction.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_V2_1_METAFUNCTION_HPP_INCLUDED
#define BOOST_MPL_V2_1_METAFUNCTION_HPP_INCLUDED
#include "boost/mpl/v2_1/expr.hpp"
#include "boost/mpl/v2_1/metafunction_base.hpp"
#include "boost/preprocessor/comma_if.hpp"
#include "boost/preprocessor/identity.hpp"
#include "boost/preprocessor/seq/for_each_i.hpp"
#define BOOST_MPL_AUX_METAFUNCTION_PARAM(unused, prefix, n, param) \
BOOST_PP_COMMA_IF(n) prefix() param \
/**/
#define METAFUNCTION(name, params, body) \
struct name : metafunction_base \
{ \
template< \
BOOST_PP_SEQ_FOR_EACH_I( \
BOOST_MPL_AUX_METAFUNCTION_PARAM \
, BOOST_PP_IDENTITY(typename) \
, params \
) \
> \
struct apply \
: boost::mpl::v2_1::expr< body > \
{ \
}; \
}; \
/**/
#endif // BOOST_MPL_V2_1_METAFUNCTION_HPP_INCLUDED

View File

@@ -1,26 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1/metafunction_base.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_V2_1_METAFUNCTION_BASE_HPP_INCLUDED
#define BOOST_MPL_V2_1_METAFUNCTION_BASE_HPP_INCLUDED
namespace boost { namespace mpl { namespace v2_1 {
struct metafunction_base {};
}}} // namespace boost::mpl::v2_1
#endif // BOOST_MPL_V2_1_METAFUNCTION_BASE_HPP_INCLUDED

View File

@@ -1,31 +0,0 @@
//-----------------------------------------------------------------------------
// boost mpl/v2_1/type_traits.hpp header file
// See http://www.boost.org for updates, documentation, and revision history.
//-----------------------------------------------------------------------------
//
// Copyright (c) 2000-02
// 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.
#ifndef BOOST_MPL_V2_1_TYPE_TRAITS_HPP_INCLUDED
#define BOOST_MPL_V2_1_TYPE_TRAITS_HPP_INCLUDED
#include "boost/mpl/quote.hpp"
#include "boost/type_traits/is_same.hpp"
#include "boost/type_traits/is_float.hpp"
namespace boost { namespace mpl { namespace v2_1 {
struct is_float : mpl::quote1<boost::is_float> {};
struct is_same : mpl::quote2<boost::is_same> {};
}}} // namespace boost::mpl::v2_1
#endif // BOOST_MPL_V2_1_TYPE_TRAITS_HPP_INCLUDED