Added boost header

This commit is contained in:
Christophe Riccio
2012-01-08 01:26:07 +00:00
parent 9c3faaca40
commit c7d752cdf8
8946 changed files with 1732316 additions and 0 deletions

View File

@@ -0,0 +1,123 @@
/*==============================================================================
Copyright (c) 2005-2010 Joel de Guzman
Copyright (c) 2010 Thomas Heller
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#ifndef BOOST_PHOENIX_DEFINE_OPERATOR_HPP
#define BOOST_PHOENIX_DEFINE_OPERATOR_HPP
#include <boost/phoenix/core/meta_grammar.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#define BOOST_PHOENIX_UNARY_EXPRESSION(__, ___, name) \
template <typename Operand> \
struct name \
: expr<proto::tag::name, Operand> \
{}; \
/**/
#define BOOST_PHOENIX_UNARY_RULE(__, ___, name) \
struct name \
: expression::name<meta_grammar> \
{}; \
/**/
#define BOOST_PHOENIX_UNARY_FUNCTIONAL(__, ___, name) \
namespace functional \
{ \
typedef \
proto::functional::make_expr<proto::tag::name> \
BOOST_PP_CAT(make_, name); \
} \
namespace result_of \
{ \
template <typename Operand> \
struct BOOST_PP_CAT(make_, name) \
: boost::result_of< \
functional:: BOOST_PP_CAT(make_, name)( \
Operand \
) \
> \
{}; \
} \
template <typename Operand> \
typename result_of::BOOST_PP_CAT(make_, name)<Operand>::type \
inline BOOST_PP_CAT(make_, name)(Operand const & operand) \
{ \
return functional::BOOST_PP_CAT(make_, name)()(operand); \
} \
/**/
#define BOOST_PHOENIX_BINARY_EXPRESSION(__, ___, name) \
template <typename Lhs, typename Rhs> \
struct name \
: expr<proto::tag::name, Lhs, Rhs> \
{}; \
/**/
#define BOOST_PHOENIX_BINARY_RULE(__, ___, name) \
struct name \
: expression::name<meta_grammar, meta_grammar> \
{}; \
/**/
#define BOOST_PHOENIX_BINARY_FUNCTIONAL(__, ___, name) \
namespace functional \
{ \
typedef \
proto::functional::make_expr<proto::tag::name> \
BOOST_PP_CAT(make_, name); \
} \
namespace result_of \
{ \
template <typename Lhs, typename Rhs> \
struct BOOST_PP_CAT(make_, name) \
: boost::result_of< \
functional:: BOOST_PP_CAT(make_, name)( \
Lhs, Rhs \
) \
> \
{}; \
} \
template <typename Rhs, typename Lhs> \
typename result_of::BOOST_PP_CAT(make_, name)<Rhs, Lhs>::type \
inline BOOST_PP_CAT(make_, name)(Lhs const & lhs, Rhs const & rhs) \
{ \
return functional::BOOST_PP_CAT(make_, name)()(lhs, rhs); \
} \
/**/
#define BOOST_PHOENIX_GRAMMAR(_, __, name) \
template <typename Dummy> \
struct meta_grammar::case_<proto::tag::name, Dummy> \
: enable_rule<rule::name, Dummy> \
{}; \
/**/
#define BOOST_PHOENIX_UNARY_OPERATORS(ops) \
namespace expression { \
BOOST_PP_SEQ_FOR_EACH(BOOST_PHOENIX_UNARY_EXPRESSION, _, ops) \
} \
namespace rule { \
BOOST_PP_SEQ_FOR_EACH(BOOST_PHOENIX_UNARY_RULE, _, ops) \
} \
BOOST_PP_SEQ_FOR_EACH(BOOST_PHOENIX_GRAMMAR, _, ops) \
BOOST_PP_SEQ_FOR_EACH(BOOST_PHOENIX_UNARY_FUNCTIONAL, _, ops) \
/**/
#define BOOST_PHOENIX_BINARY_OPERATORS(ops) \
namespace expression { \
BOOST_PP_SEQ_FOR_EACH(BOOST_PHOENIX_BINARY_EXPRESSION, _, ops) \
} \
namespace rule { \
BOOST_PP_SEQ_FOR_EACH(BOOST_PHOENIX_BINARY_RULE, _, ops) \
} \
BOOST_PP_SEQ_FOR_EACH(BOOST_PHOENIX_GRAMMAR, _, ops) \
BOOST_PP_SEQ_FOR_EACH(BOOST_PHOENIX_BINARY_FUNCTIONAL, _, ops) \
/**/
#endif

View File

@@ -0,0 +1,56 @@
/*==============================================================================
Copyright (c) 2005-2010 Joel de Guzman
Copyright (c) 2010 Thomas Heller
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#if !BOOST_PHOENIX_IS_ITERATING
#ifndef BOOST_PHOENIX_OPERATOR_DETAIL_MEM_FUN_PTR_EVAL_RESULT_OF_HPP
#define BOOST_PHOENIX_OPERATOR_DETAIL_MEM_FUN_PTR_EVAL_RESULT_OF_HPP
#define BOOST_PHOENIX_MEM_FUN_PTR_EVAL_RESULT_OF_CHILD(Z, N, D) \
typedef \
typename \
evaluator::impl< \
BOOST_PP_CAT(A, N) \
, Context \
, int \
>::result_type \
BOOST_PP_CAT(child, N); \
/**/
#define BOOST_PHOENIX_ITERATION_PARAMS \
(3, (2, BOOST_PHOENIX_LIMIT, \
<boost/phoenix/operator/detail/mem_fun_ptr_eval_result_of.hpp>))
#include BOOST_PHOENIX_ITERATE()
#undef BOOST_PHOENIX_MEM_FUN_PTR_EVAL_RESULT_OF_CHILD
#endif
#else
template <typename Context, BOOST_PHOENIX_typename_A>
struct mem_fun_ptr_eval<Context, BOOST_PHOENIX_A>
{
BOOST_PP_REPEAT(
BOOST_PHOENIX_ITERATION
, BOOST_PHOENIX_MEM_FUN_PTR_EVAL_RESULT_OF_CHILD
, _
)
typedef
typename boost::result_of<
child1(
BOOST_PP_ENUM_SHIFTED_PARAMS(
BOOST_PHOENIX_ITERATION
, child
)
)
>::type
type;
};
#endif

View File

@@ -0,0 +1,94 @@
#if !BOOST_PHOENIX_IS_ITERATING
#ifndef BOOST_PHOENIX_OPERATOR_MEMBER_DETAIL_MEM_FUN_PTR_GEN_HPP
#define BOOST_PHOENIX_OPERATOR_MEMBER_DETAIL_MEM_FUN_PTR_GEN_HPP
#include <boost/phoenix/core/limits.hpp>
#include <boost/phoenix/support/iterate.hpp>
#include <boost/phoenix/core/expression.hpp>
#if !defined(BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES)
#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen.hpp>
#else
#if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
#pragma wave option(preserve: 2, line: 0, output: "preprocessed/mem_fun_ptr_gen_" BOOST_PHOENIX_LIMIT_STR ".hpp")
#endif
/*==============================================================================
Copyright (c) 2001-2010 Joel de Guzman
Copyright (c) 2010 Thomas Heller
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
#pragma wave option(preserve: 1)
#endif
BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG(
(boost)(phoenix)(mem_fun_ptr)
, (meta_grammar)
(meta_grammar)
, BOOST_PHOENIX_LIMIT
)
namespace boost { namespace phoenix
{
namespace detail {
template <typename Object, typename MemPtr>
struct mem_fun_ptr_gen
{
mem_fun_ptr_gen(Object const& obj, MemPtr ptr)
: obj(obj)
, ptr(ptr)
{}
typename phoenix::expression::mem_fun_ptr<Object, MemPtr>::type const
operator()() const
{
return phoenix::expression::mem_fun_ptr<Object, MemPtr>::make(obj, ptr);
}
#define BOOST_PHOENIX_ITERATION_PARAMS \
(3, (1, BOOST_PHOENIX_MEMBER_LIMIT, \
<boost/phoenix/operator/detail/mem_fun_ptr_gen.hpp>)) \
#include BOOST_PHOENIX_ITERATE()
Object const& obj;
MemPtr ptr;
};
}
}}
#if defined(__WAVE__) && defined(BOOST_PHOENIX_CREATE_PREPROCESSED_FILES)
#pragma wave option(output: null)
#endif
#endif // BOOST_PHOENIX_DONT_USE_PREPROCESSED_FILES
#endif
#else
template <BOOST_PHOENIX_typename_A>
typename phoenix::expression::mem_fun_ptr<
Object
, MemPtr
, BOOST_PHOENIX_A
>::type const
operator()(BOOST_PHOENIX_A_const_ref_a) const
{
return phoenix::expression::mem_fun_ptr<
Object
, MemPtr
, BOOST_PHOENIX_A
>::make(obj, ptr, BOOST_PHOENIX_a);
}
#endif

View File

@@ -0,0 +1,25 @@
/*==============================================================================
Copyright (c) 2011 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#if !defined(BOOST_PHOENIX_PREPROCESSED_MEM_FUN_PTR_GEN)
#define BOOST_PHOENIX_PREPROCESSED_MEM_FUN_PTR_GEN
#if BOOST_PHOENIX_LIMIT <= 10
#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_10.hpp>
#elif BOOST_PHOENIX_LIMIT <= 20
#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_20.hpp>
#elif BOOST_PHOENIX_LIMIT <= 30
#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_30.hpp>
#elif BOOST_PHOENIX_LIMIT <= 40
#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_40.hpp>
#elif BOOST_PHOENIX_LIMIT <= 50
#include <boost/phoenix/operator/detail/preprocessed/mem_fun_ptr_gen_50.hpp>
#else
#error "BOOST_PHOENIX_LIMIT out of bounds for preprocessed headers"
#endif
#endif

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,17 @@
/*==============================================================================
Copyright (c) 2010 Thomas Heller
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#undef BOOST_PHOENIX_UNARY_RULE
#undef BOOST_PHOENIX_UNARY_FUNCTIONAL
#undef BOOST_PHOENIX_BINARY_RULE
#undef BOOST_PHOENIX_BINARY_FUNCTIONAL
#undef BOOST_PHOENIX_UNARY_EXPRESSION
#undef BOOST_PHOENIX_BINARY_EXPRESSION
#undef BOOST_PHOENIX_GRAMMAR
#undef BOOST_PHOENIX_UNARY_OPERATORS
#undef BOOST_PHOENIX_BINARY_OPERATORS
#undef BOOST_PHOENIX_DEFINE_OPERATOR_HPP