mirror of
https://github.com/boostorg/mpl.git
synced 2025-08-04 07:14:30 +02:00
pre-release cleanup
[SVN r17656]
This commit is contained in:
@@ -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)
|
#if defined(BOOST_MPL_NO_FULL_LAMBDA_SUPPORT)
|
||||||
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
@@ -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
|
|
Reference in New Issue
Block a user