Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r57159 - in trunk: boost/proto boost/proto/context boost/proto/detail boost/proto/transform libs/proto/test
From: eric_at_[hidden]
Date: 2009-10-26 11:15:10


Author: eric_niebler
Date: 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
New Revision: 57159
URL: http://svn.boost.org/trac/boost/changeset/57159

Log:
accomodate recent change to fusion::fold, remove old support for Doxygen and pre-1.35 Fusion, fixes #3553
Removed:
   trunk/boost/proto/detail/prefix.hpp
   trunk/boost/proto/detail/suffix.hpp
Text files modified:
   trunk/boost/proto/args.hpp | 61 ++---
   trunk/boost/proto/context.hpp | 2
   trunk/boost/proto/context/callable.hpp | 6
   trunk/boost/proto/context/default.hpp | 6
   trunk/boost/proto/context/null.hpp | 4
   trunk/boost/proto/core.hpp | 2
   trunk/boost/proto/debug.hpp | 2
   trunk/boost/proto/deep_copy.hpp | 2
   trunk/boost/proto/detail/as_lvalue.hpp | 2
   trunk/boost/proto/detail/decltype.hpp | 21 -
   trunk/boost/proto/detail/deprecated.hpp | 2
   trunk/boost/proto/domain.hpp | 153 +++++++-------
   trunk/boost/proto/eval.hpp | 2
   trunk/boost/proto/expr.hpp | 13
   trunk/boost/proto/extends.hpp | 344 ++++++++++++++++-----------------
   trunk/boost/proto/fusion.hpp | 66 -----
   trunk/boost/proto/generate.hpp | 405 +++++++++++++++++++--------------------
   trunk/boost/proto/literal.hpp | 4
   trunk/boost/proto/make_expr.hpp | 62 ++---
   trunk/boost/proto/matches.hpp | 12
   trunk/boost/proto/operators.hpp | 112 +++++-----
   trunk/boost/proto/proto.hpp | 2
   trunk/boost/proto/proto_fwd.hpp | 83 +-------
   trunk/boost/proto/proto_typeof.hpp | 2
   trunk/boost/proto/repeat.hpp | 2
   trunk/boost/proto/tags.hpp | 2
   trunk/boost/proto/traits.hpp | 26 +-
   trunk/boost/proto/transform.hpp | 2
   trunk/boost/proto/transform/arg.hpp | 2
   trunk/boost/proto/transform/call.hpp | 2
   trunk/boost/proto/transform/default.hpp | 4
   trunk/boost/proto/transform/fold.hpp | 60 -----
   trunk/boost/proto/transform/fold_tree.hpp | 2
   trunk/boost/proto/transform/impl.hpp | 2
   trunk/boost/proto/transform/lazy.hpp | 2
   trunk/boost/proto/transform/make.hpp | 2
   trunk/boost/proto/transform/pass_through.hpp | 2
   trunk/boost/proto/transform/when.hpp | 4
   trunk/libs/proto/test/examples.cpp | 11
   trunk/libs/proto/test/lambda.cpp | 13 -
   trunk/libs/proto/test/make_expr.cpp | 5
   trunk/libs/proto/test/proto_fusion.cpp | 5
   trunk/libs/proto/test/proto_fusion_s.cpp | 5
   trunk/libs/proto/test/toy_spirit2.cpp | 26 --
   44 files changed, 626 insertions(+), 923 deletions(-)

Modified: trunk/boost/proto/args.hpp
==============================================================================
--- trunk/boost/proto/args.hpp (original)
+++ trunk/boost/proto/args.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -11,7 +11,6 @@
     #ifndef BOOST_PROTO_ARGS_HPP_EAN_04_01_2005
     #define BOOST_PROTO_ARGS_HPP_EAN_04_01_2005
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/config.hpp>
     #include <boost/detail/workaround.hpp>
     #include <boost/preprocessor/cat.hpp>
@@ -24,7 +23,6 @@
     #include <boost/mpl/if.hpp>
     #include <boost/mpl/void.hpp>
     #include <boost/proto/proto_fwd.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     namespace boost { namespace proto
     {
@@ -123,46 +121,45 @@
         }
 
         ////////////////////////////////////////////////////////////////////////////////////////////
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(argsns_)
-
- #define BOOST_PROTO_DEFINE_CHILD_N(Z, N, DATA) \
- typedef BOOST_PP_CAT(Arg, N) BOOST_PP_CAT(child, N); \
- /**< INTERNAL ONLY */
-
- #define BOOST_PROTO_DEFINE_VOID_N(z, n, data) \
- typedef mpl::void_ BOOST_PP_CAT(child, n); \
- /**< INTERNAL ONLY */
-
- /// \brief A type sequence, for use as the 2nd parameter to the \c expr\<\> class template.
- ///
- /// A type sequence, for use as the 2nd parameter to the \c expr\<\> class template.
- /// The types in the sequence correspond to the children of a node in an expression tree.
- template< typename Arg0 >
- struct term
+ namespace argsns_
         {
- BOOST_STATIC_CONSTANT(long, arity = 0);
- typedef Arg0 child0;
 
- #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
- BOOST_PP_REPEAT_FROM_TO(1, BOOST_PROTO_MAX_ARITY, BOOST_PROTO_DEFINE_VOID_N, ~)
- #endif
+ #define BOOST_PROTO_DEFINE_CHILD_N(Z, N, DATA) \
+ typedef BOOST_PP_CAT(Arg, N) BOOST_PP_CAT(child, N); \
+ /**< INTERNAL ONLY */
+
+ #define BOOST_PROTO_DEFINE_VOID_N(z, n, data) \
+ typedef mpl::void_ BOOST_PP_CAT(child, n); \
+ /**< INTERNAL ONLY */
 
- /// INTERNAL ONLY
+ /// \brief A type sequence, for use as the 2nd parameter to the \c expr\<\> class template.
             ///
- typedef Arg0 back_;
- };
+ /// A type sequence, for use as the 2nd parameter to the \c expr\<\> class template.
+ /// The types in the sequence correspond to the children of a node in an expression tree.
+ template< typename Arg0 >
+ struct term
+ {
+ BOOST_STATIC_CONSTANT(long, arity = 0);
+ typedef Arg0 child0;
+
+ #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500))
+ BOOST_PP_REPEAT_FROM_TO(1, BOOST_PROTO_MAX_ARITY, BOOST_PROTO_DEFINE_VOID_N, ~)
+ #endif
+
+ /// INTERNAL ONLY
+ ///
+ typedef Arg0 back_;
+ };
 
- #define BOOST_PP_ITERATION_PARAMS_1 (3, (1, BOOST_PROTO_MAX_ARITY, <boost/proto/args.hpp>))
- #include BOOST_PP_ITERATE()
+ #define BOOST_PP_ITERATION_PARAMS_1 (3, (1, BOOST_PROTO_MAX_ARITY, <boost/proto/args.hpp>))
+ #include BOOST_PP_ITERATE()
 
- #undef BOOST_PROTO_DEFINE_CHILD_N
+ #undef BOOST_PROTO_DEFINE_CHILD_N
 
- BOOST_PROTO_END_ADL_NAMESPACE(argsns_)
+ }
         ////////////////////////////////////////////////////////////////////////////////////////////
 
- #ifndef BOOST_PROTO_BUILDING_DOCS
         using namespace argsns_;
- #endif
     }}
     #endif
 

Modified: trunk/boost/proto/context.hpp
==============================================================================
--- trunk/boost/proto/context.hpp (original)
+++ trunk/boost/proto/context.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,10 +9,8 @@
 #ifndef BOOST_PROTO_CONTEXT_HPP_EAN_06_23_2007
 #define BOOST_PROTO_CONTEXT_HPP_EAN_06_23_2007
 
-#include <boost/proto/detail/prefix.hpp> // must be first include
 #include <boost/proto/context/null.hpp>
 #include <boost/proto/context/default.hpp>
 #include <boost/proto/context/callable.hpp>
-#include <boost/proto/detail/suffix.hpp> // must be last include
 
 #endif

Modified: trunk/boost/proto/context/callable.hpp
==============================================================================
--- trunk/boost/proto/context/callable.hpp (original)
+++ trunk/boost/proto/context/callable.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -14,7 +14,6 @@
     #ifndef BOOST_PROTO_CONTEXT_CALLABLE_HPP_EAN_06_23_2007
     #define BOOST_PROTO_CONTEXT_CALLABLE_HPP_EAN_06_23_2007
 
- #include <boost/proto/detail/prefix.hpp> // must be first include
     #include <boost/config.hpp>
     #include <boost/detail/workaround.hpp>
     #include <boost/preprocessor/cat.hpp>
@@ -32,7 +31,6 @@
     #include <boost/type_traits/remove_cv.hpp>
     #include <boost/proto/proto_fwd.hpp>
     #include <boost/proto/traits.hpp> // for child_c
- #include <boost/proto/detail/suffix.hpp> // must be last include
 
     namespace boost { namespace proto
     {
@@ -86,7 +84,7 @@
             template<
                 typename Expr
               , typename Context
- , long Arity BOOST_PROTO_WHEN_BUILDING_DOCS(= Expr::proto_arity_c)
+ , long Arity // = Expr::proto_arity_c
>
             struct callable_eval
             {};
@@ -191,7 +189,7 @@
             /// \endcode
             template<
                 typename Context
- , typename DefaultCtx BOOST_PROTO_WHEN_BUILDING_DOCS(= default_context)
+ , typename DefaultCtx // = default_context
>
             struct callable_context
             {

Modified: trunk/boost/proto/context/default.hpp
==============================================================================
--- trunk/boost/proto/context/default.hpp (original)
+++ trunk/boost/proto/context/default.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -12,7 +12,6 @@
     #ifndef BOOST_PROTO_CONTEXT_DEFAULT_HPP_EAN_01_08_2007
     #define BOOST_PROTO_CONTEXT_DEFAULT_HPP_EAN_01_08_2007
 
- #include <boost/proto/detail/prefix.hpp> // must be first include
     #include <boost/config.hpp>
     #include <boost/preprocessor/iteration/iterate.hpp>
     #include <boost/preprocessor/repetition/enum_shifted.hpp>
@@ -28,7 +27,6 @@
     #include <boost/proto/eval.hpp>
     #include <boost/proto/traits.hpp> // for proto::child_c()
     #include <boost/proto/detail/decltype.hpp>
- #include <boost/proto/detail/suffix.hpp> // must be last include
 
     namespace boost { namespace proto
     {
@@ -41,8 +39,8 @@
             template<
                 typename Expr
               , typename Context
- , typename Tag BOOST_PROTO_WHEN_BUILDING_DOCS(= typename Expr::proto_tag)
- , long Arity BOOST_PROTO_WHEN_BUILDING_DOCS(= Expr::proto_arity_c)
+ , typename Tag // = typename Expr::proto_tag
+ , long Arity // = Expr::proto_arity_c
>
             struct default_eval
             {};

Modified: trunk/boost/proto/context/null.hpp
==============================================================================
--- trunk/boost/proto/context/null.hpp (original)
+++ trunk/boost/proto/context/null.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -12,13 +12,11 @@
     #ifndef BOOST_PROTO_CONTEXT_NULL_HPP_EAN_06_24_2007
     #define BOOST_PROTO_CONTEXT_NULL_HPP_EAN_06_24_2007
 
- #include <boost/proto/detail/prefix.hpp> // must be first include
     #include <boost/preprocessor/iteration/iterate.hpp>
     #include <boost/preprocessor/repetition/repeat.hpp>
     #include <boost/proto/proto_fwd.hpp>
     #include <boost/proto/eval.hpp>
     #include <boost/proto/traits.hpp>
- #include <boost/proto/detail/suffix.hpp> // must be last include
 
     namespace boost { namespace proto { namespace context
     {
@@ -26,7 +24,7 @@
         template<
             typename Expr
           , typename Context
- , long Arity BOOST_PROTO_WHEN_BUILDING_DOCS(= Expr::proto_arity_c)
+ , long Arity // = Expr::proto_arity_c
>
         struct null_eval
         {};

Modified: trunk/boost/proto/core.hpp
==============================================================================
--- trunk/boost/proto/core.hpp (original)
+++ trunk/boost/proto/core.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,7 +10,6 @@
 #ifndef BOOST_PROTO_CORE_HPP_EAN_04_01_2005
 #define BOOST_PROTO_CORE_HPP_EAN_04_01_2005
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/proto/proto_fwd.hpp>
 #include <boost/proto/args.hpp>
 #include <boost/proto/tags.hpp>
@@ -27,6 +26,5 @@
 #include <boost/proto/operators.hpp>
 #include <boost/proto/deep_copy.hpp>
 #include <boost/proto/make_expr.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 #endif

Modified: trunk/boost/proto/debug.hpp
==============================================================================
--- trunk/boost/proto/debug.hpp (original)
+++ trunk/boost/proto/debug.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,7 +9,6 @@
 #ifndef BOOST_PROTO_DEBUG_HPP_EAN_12_31_2006
 #define BOOST_PROTO_DEBUG_HPP_EAN_12_31_2006
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/preprocessor/iteration/local.hpp>
 #include <boost/preprocessor/repetition/repeat.hpp>
 #include <iomanip>
@@ -19,7 +18,6 @@
 #include <boost/proto/expr.hpp>
 #include <boost/proto/traits.hpp>
 #include <boost/proto/detail/dont_care.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto
 {

Modified: trunk/boost/proto/deep_copy.hpp
==============================================================================
--- trunk/boost/proto/deep_copy.hpp (original)
+++ trunk/boost/proto/deep_copy.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,7 +10,6 @@
     #ifndef BOOST_PROTO_DEEP_COPY_HPP_EAN_11_21_2006
     #define BOOST_PROTO_DEEP_COPY_HPP_EAN_11_21_2006
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/preprocessor/cat.hpp>
     #include <boost/preprocessor/repetition/enum.hpp>
     #include <boost/preprocessor/iteration/iterate.hpp>
@@ -19,7 +18,6 @@
     #include <boost/type_traits/remove_reference.hpp>
     #include <boost/proto/proto_fwd.hpp>
     #include <boost/proto/expr.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     namespace boost { namespace proto
     {

Modified: trunk/boost/proto/detail/as_lvalue.hpp
==============================================================================
--- trunk/boost/proto/detail/as_lvalue.hpp (original)
+++ trunk/boost/proto/detail/as_lvalue.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,9 +9,7 @@
 #ifndef BOOST_PROTO_TRANSFORM_AS_LVALUE_HPP_EAN_12_27_2007
 #define BOOST_PROTO_TRANSFORM_AS_LVALUE_HPP_EAN_12_27_2007
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/proto/proto_fwd.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto
 {

Modified: trunk/boost/proto/detail/decltype.hpp
==============================================================================
--- trunk/boost/proto/detail/decltype.hpp (original)
+++ trunk/boost/proto/detail/decltype.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,7 +9,6 @@
 #ifndef BOOST_PROTO_DETAIL_DECLTYPE_HPP_EAN_04_04_2008
 #define BOOST_PROTO_DETAIL_DECLTYPE_HPP_EAN_04_04_2008
 
-#include <boost/proto/detail/prefix.hpp> // must be first include
 #include <boost/config.hpp>
 #include <boost/detail/workaround.hpp>
 #include <boost/get_pointer.hpp>
@@ -35,15 +34,11 @@
 #include <boost/utility/result_of.hpp>
 #include <boost/utility/enable_if.hpp>
 #include <boost/proto/repeat.hpp>
-#include <boost/proto/detail/suffix.hpp> // must be last include
 
-// If we're generating doxygen documentation, hide all the nasty
-// Boost.Typeof gunk.
-#ifndef BOOST_PROTO_BUILDING_DOCS
-# ifdef BOOST_HAS_DECLTYPE
-# define BOOST_PROTO_DECLTYPE_(EXPR, TYPE) typedef decltype(EXPR) TYPE;
-# else
-# define BOOST_PROTO_DECLTYPE_NESTED_TYPEDEF_TPL_(NESTED, EXPR) \
+#ifdef BOOST_HAS_DECLTYPE
+# define BOOST_PROTO_DECLTYPE_(EXPR, TYPE) typedef decltype(EXPR) TYPE;
+#else
+# define BOOST_PROTO_DECLTYPE_NESTED_TYPEDEF_TPL_(NESTED, EXPR) \
     BOOST_TYPEOF_NESTED_TYPEDEF_TPL(BOOST_PP_CAT(nested_and_hidden_, NESTED), EXPR) \
     static int const sz = sizeof(boost::proto::detail::check_reference(EXPR)); \
     struct NESTED \
@@ -53,15 +48,9 @@
           , typename BOOST_PP_CAT(nested_and_hidden_, NESTED)::type \
> \
     {};
-# define BOOST_PROTO_DECLTYPE_(EXPR, TYPE) \
+# define BOOST_PROTO_DECLTYPE_(EXPR, TYPE) \
     BOOST_PROTO_DECLTYPE_NESTED_TYPEDEF_TPL_(BOOST_PP_CAT(nested_, TYPE), (EXPR)) \
     typedef typename BOOST_PP_CAT(nested_, TYPE)::type TYPE;
-# endif
-#else
-/// INTERNAL ONLY
-///
-# define BOOST_PROTO_DECLTYPE_(EXPR, TYPE) \
- typedef detail::unspecified TYPE;
 #endif
 
 namespace boost { namespace proto

Modified: trunk/boost/proto/detail/deprecated.hpp
==============================================================================
--- trunk/boost/proto/detail/deprecated.hpp (original)
+++ trunk/boost/proto/detail/deprecated.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,7 +10,6 @@
 #ifndef BOOST_PROTO_DETAIL_DEPRECATED_HPP_EAN_11_25_2008
 #define BOOST_PROTO_DETAIL_DEPRECATED_HPP_EAN_11_25_2008
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/facilities/intercept.hpp>
 #include <boost/preprocessor/arithmetic/inc.hpp>
@@ -37,7 +36,6 @@
 #include <boost/preprocessor/repetition/enum_binary_params.hpp>
 #include <boost/preprocessor/repetition/enum_trailing_binary_params.hpp>
 #include <boost/proto/proto_fwd.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 /// INTERNAL ONLY
 ///

Deleted: trunk/boost/proto/detail/prefix.hpp
==============================================================================
--- trunk/boost/proto/detail/prefix.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
+++ (empty file)
@@ -1,10 +0,0 @@
-#if defined(__WAVE__) && defined(BOOST_PROTO_BUILDING_DOCS)
-#pragma wave option(output:push)
-#pragma wave option(output:null)
-#endif
-
-///////////////////////////////////////////////////////////////////////////////
-// Copyright 2008 Eric Niebler. 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)
-///////////////////////////////////////////////////////////////////////////////

Deleted: trunk/boost/proto/detail/suffix.hpp
==============================================================================
--- trunk/boost/proto/detail/suffix.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
+++ (empty file)
@@ -1,16 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-// Copyright 2008 Eric Niebler. 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_PROTO_BUILDING_DOCS)
-#pragma wave option(output:pop)
-#endif
-
-#ifndef BOOST_PROTO_SUFFIX_DUMMY_STRUCT_DEFINED
-#define BOOST_PROTO_SUFFIX_DUMMY_STRUCT_DEFINED
-/// INTERNAL ONLY
-///
-struct a_dummy_struct;
-#endif

Modified: trunk/boost/proto/domain.hpp
==============================================================================
--- trunk/boost/proto/domain.hpp (original)
+++ trunk/boost/proto/domain.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -11,12 +11,10 @@
 #ifndef BOOST_PROTO_DOMAIN_HPP_EAN_02_13_2007
 #define BOOST_PROTO_DOMAIN_HPP_EAN_02_13_2007
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/ref.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/proto/proto_fwd.hpp>
 #include <boost/proto/generate.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto
 {
@@ -30,84 +28,83 @@
         {};
     }
 
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(domainns_)
-
- /// \brief For use in defining domain tags to be used
- /// with \c proto::extends\<\>. A \e Domain associates
- /// an expression type with a \e Generator, and optionally
- /// a \e Grammar.
- ///
- /// The Generator determines how new expressions in the
- /// domain are constructed. Typically, a generator wraps
- /// all new expressions in a wrapper that imparts
- /// domain-specific behaviors to expressions within its
- /// domain. (See \c proto::extends\<\>.)
- ///
- /// The Grammar determines whether a given expression is
- /// valid within the domain, and automatically disables
- /// any operator overloads which would cause an invalid
- /// expression to be created. By default, the Grammar
- /// parameter defaults to the wildcard, \c proto::_, which
- /// makes all expressions valid within the domain.
- ///
- /// Example:
- /// \code
- /// template<typename Expr>
- /// struct MyExpr;
- ///
- /// struct MyGrammar
- /// : or_< terminal<_>, plus<MyGrammar, MyGrammar> >
- /// {};
- ///
- /// // Define MyDomain, in which all expressions are
- /// // wrapped in MyExpr<> and only expressions that
- /// // conform to MyGrammar are allowed.
- /// struct MyDomain
- /// : domain<generator<MyExpr>, MyGrammar>
- /// {};
- ///
- /// // Use MyDomain to define MyExpr
- /// template<typename Expr>
- /// struct MyExpr
- /// : extends<Expr, MyExpr<Expr>, MyDomain>
- /// {
- /// // ...
- /// };
- /// \endcode
- ///
- template<
- typename Generator BOOST_PROTO_WHEN_BUILDING_DOCS(= default_generator)
- , typename Grammar BOOST_PROTO_WHEN_BUILDING_DOCS(= proto::_)
- >
- struct domain
- : Generator
+ namespace domainns_
     {
- typedef Grammar proto_grammar;
+ /// \brief For use in defining domain tags to be used
+ /// with \c proto::extends\<\>. A \e Domain associates
+ /// an expression type with a \e Generator, and optionally
+ /// a \e Grammar.
+ ///
+ /// The Generator determines how new expressions in the
+ /// domain are constructed. Typically, a generator wraps
+ /// all new expressions in a wrapper that imparts
+ /// domain-specific behaviors to expressions within its
+ /// domain. (See \c proto::extends\<\>.)
+ ///
+ /// The Grammar determines whether a given expression is
+ /// valid within the domain, and automatically disables
+ /// any operator overloads which would cause an invalid
+ /// expression to be created. By default, the Grammar
+ /// parameter defaults to the wildcard, \c proto::_, which
+ /// makes all expressions valid within the domain.
+ ///
+ /// Example:
+ /// \code
+ /// template<typename Expr>
+ /// struct MyExpr;
+ ///
+ /// struct MyGrammar
+ /// : or_< terminal<_>, plus<MyGrammar, MyGrammar> >
+ /// {};
+ ///
+ /// // Define MyDomain, in which all expressions are
+ /// // wrapped in MyExpr<> and only expressions that
+ /// // conform to MyGrammar are allowed.
+ /// struct MyDomain
+ /// : domain<generator<MyExpr>, MyGrammar>
+ /// {};
+ ///
+ /// // Use MyDomain to define MyExpr
+ /// template<typename Expr>
+ /// struct MyExpr
+ /// : extends<Expr, MyExpr<Expr>, MyDomain>
+ /// {
+ /// // ...
+ /// };
+ /// \endcode
+ ///
+ template<
+ typename Generator // = default_generator
+ , typename Grammar // = proto::_
+ >
+ struct domain
+ : Generator
+ {
+ typedef Grammar proto_grammar;
 
- /// INTERNAL ONLY
- typedef void proto_is_domain_;
- };
+ /// INTERNAL ONLY
+ typedef void proto_is_domain_;
+ };
 
- /// \brief The domain expressions have by default, if
- /// \c proto::extends\<\> has not been used to associate
- /// a domain with an expression.
- ///
- struct default_domain
- : domain<>
- {};
-
- /// \brief A pseudo-domain for use in functions and
- /// metafunctions that require a domain parameter. It
- /// indicates that the domain of the parent node should
- /// be inferred from the domains of the child nodes.
- ///
- /// \attention \c deduce_domain is not itself a valid domain.
- ///
- struct deduce_domain
- : domain<detail::not_a_generator, detail::not_a_grammar>
- {};
+ /// \brief The domain expressions have by default, if
+ /// \c proto::extends\<\> has not been used to associate
+ /// a domain with an expression.
+ ///
+ struct default_domain
+ : domain<>
+ {};
 
- BOOST_PROTO_END_ADL_NAMESPACE(domainns_)
+ /// \brief A pseudo-domain for use in functions and
+ /// metafunctions that require a domain parameter. It
+ /// indicates that the domain of the parent node should
+ /// be inferred from the domains of the child nodes.
+ ///
+ /// \attention \c deduce_domain is not itself a valid domain.
+ ///
+ struct deduce_domain
+ : domain<detail::not_a_generator, detail::not_a_grammar>
+ {};
+ }
 
     namespace result_of
     {
@@ -116,7 +113,7 @@
         /// \c mpl::false_ otherwise. If \c T inherits from
         /// \c proto::domain\<\>, \c is_domain\<T\> is
         /// \c mpl::true_.
- template<typename T, typename Void BOOST_PROTO_WHEN_BUILDING_DOCS(= void)>
+ template<typename T, typename Void /* = void*/>
         struct is_domain
           : mpl::false_
         {};
@@ -133,7 +130,7 @@
         /// type, it returns that expression's associated
         /// domain. If not, it returns
         /// \c proto::default_domain.
- template<typename T, typename Void BOOST_PROTO_WHEN_BUILDING_DOCS(= void)>
+ template<typename T, typename Void /* = void*/>
         struct domain_of
         {
             typedef default_domain type;

Modified: trunk/boost/proto/eval.hpp
==============================================================================
--- trunk/boost/proto/eval.hpp (original)
+++ trunk/boost/proto/eval.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,10 +9,8 @@
 #ifndef BOOST_PROTO_EVAL_HPP_EAN_03_29_2007
 #define BOOST_PROTO_EVAL_HPP_EAN_03_29_2007
 
-#include <boost/proto/detail/prefix.hpp> // must be first include
 #include <boost/proto/proto_fwd.hpp> // BOOST_PROTO_CALLABLE
 #include <boost/type_traits/remove_reference.hpp>
-#include <boost/proto/detail/suffix.hpp> // must be last include
 
 namespace boost { namespace proto
 {

Modified: trunk/boost/proto/expr.hpp
==============================================================================
--- trunk/boost/proto/expr.hpp (original)
+++ trunk/boost/proto/expr.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,7 +10,6 @@
     #ifndef BOOST_PROTO_EXPR_HPP_EAN_04_01_2005
     #define BOOST_PROTO_EXPR_HPP_EAN_04_01_2005
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/preprocessor/cat.hpp>
     #include <boost/preprocessor/arithmetic/dec.hpp>
     #include <boost/preprocessor/selection/max.hpp>
@@ -26,7 +25,6 @@
     #include <boost/proto/proto_fwd.hpp>
     #include <boost/proto/args.hpp>
     #include <boost/proto/traits.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     #if defined(_MSC_VER) && (_MSC_VER >= 1020)
     # pragma warning(push)
@@ -136,10 +134,11 @@
         // a basic_expr because they should be layout compatible. Or not, because
         // that would incur an extra template instantiation. :-(
 
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(exprns_)
- #define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PROTO_MAX_ARITY, <boost/proto/expr.hpp>))
- #include BOOST_PP_ITERATE()
- BOOST_PROTO_END_ADL_NAMESPACE(exprns_)
+ namespace exprns_
+ {
+ #define BOOST_PP_ITERATION_PARAMS_1 (3, (0, BOOST_PROTO_MAX_ARITY, <boost/proto/expr.hpp>))
+ #include BOOST_PP_ITERATE()
+ }
 
         #undef BOOST_PROTO_CHILD
         #undef BOOST_PROTO_VOID
@@ -221,7 +220,7 @@
             typedef BOOST_PP_CAT(list, BOOST_PP_ITERATION())<BOOST_PP_ENUM_PARAMS(ARG_COUNT, Arg)> proto_args;
             #endif
             typedef default_domain proto_domain;
- BOOST_PROTO_FUSION_DEFINE_TAG(proto::tag::proto_expr)
+ typedef proto::tag::proto_expr fusion_tag;
             typedef expr proto_derived_expr;
             typedef void proto_is_expr_; /**< INTERNAL ONLY */
 

Modified: trunk/boost/proto/extends.hpp
==============================================================================
--- trunk/boost/proto/extends.hpp (original)
+++ trunk/boost/proto/extends.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,7 +9,6 @@
 #ifndef BOOST_PROTO_EXTENDS_HPP_EAN_11_1_2006
 #define BOOST_PROTO_EXTENDS_HPP_EAN_11_1_2006
 
-#include <boost/proto/detail/prefix.hpp>
 #include <cstddef> // for offsetof
 #include <boost/preprocessor/tuple/elem.hpp>
 #include <boost/preprocessor/control/if.hpp>
@@ -30,7 +29,6 @@
 #include <boost/proto/args.hpp>
 #include <boost/proto/traits.hpp>
 #include <boost/proto/generate.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto
 {
@@ -158,7 +156,7 @@
         typedef typename proto_base_expr::address_of_hack_type_ proto_address_of_hack_type_; \
         typedef void proto_is_expr_; /**< INTERNAL ONLY */ \
         BOOST_STATIC_CONSTANT(long, proto_arity_c = proto_base_expr::proto_arity_c); \
- BOOST_PROTO_FUSION_DEFINE_TAG(boost::proto::tag::proto_expr) \
+ typedef boost::proto::tag::proto_expr fusion_tag; \
         BOOST_PP_REPEAT(BOOST_PROTO_MAX_ARITY, BOOST_PROTO_EXTENDS_CHILD, ~) \
                                                                                                     \
         static proto_derived_expr const make(Expr const &e) \
@@ -413,192 +411,192 @@
         BOOST_PROTO_EXTENDS_FUNCTION() \
         /**/
 
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(exprns_)
-
- /// \brief Empty type to be used as a dummy template parameter of
- /// POD expression wrappers. It allows argument-dependent lookup
- /// to find Proto's operator overloads.
- ///
- /// \c proto::is_proto_expr allows argument-dependent lookup
- /// to find Proto's operator overloads. For example:
- ///
- /// \code
- /// template<typename T, typename Dummy = proto::is_proto_expr>
- /// struct my_terminal
- /// {
- /// BOOST_PROTO_BASIC_EXTENDS(
- /// typename proto::terminal<T>::type
- /// , my_terminal<T>
- /// , default_domain
- /// )
- /// };
- ///
- /// // ...
- /// my_terminal<int> _1, _2;
- /// _1 + _2; // OK, uses proto::operator+
- /// \endcode
- ///
- /// Without the second \c Dummy template parameter, Proto's operator
- /// overloads would not be considered by name lookup.
- struct is_proto_expr
- {};
-
- /// \brief extends\<\> class template for adding behaviors to a Proto expression template
- ///
- template<
- typename Expr
- , typename Derived
- , typename Domain BOOST_PROTO_WHEN_BUILDING_DOCS(= proto::default_domain)
- , long Arity BOOST_PROTO_WHEN_BUILDING_DOCS(= Expr::proto_arity_c)
- >
- struct extends
+ namespace exprns_
     {
- extends()
- : proto_expr_()
- {}
-
- extends(extends const &that)
- : proto_expr_(that.proto_expr_)
- {}
-
- extends(Expr const &expr_)
- : proto_expr_(expr_)
- {}
-
- BOOST_PROTO_BASIC_EXTENDS_(Expr, Derived, Domain)
- BOOST_PROTO_EXTENDS_ASSIGN_CONST()
- BOOST_PROTO_EXTENDS_SUBSCRIPT_CONST()
-
- // Instead of using BOOST_PROTO_EXTENDS_FUNCTION, which uses
- // nested preprocessor loops, use file iteration here to generate
- // the operator() overloads, which is more efficient.
- BOOST_PROTO_EXTENDS_FUNCTION_()
-
- #ifdef BOOST_HAS_VARIADIC_TMPL
- BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1)
- #else
- /// INTERNAL ONLY
+ /// \brief Empty type to be used as a dummy template parameter of
+ /// POD expression wrappers. It allows argument-dependent lookup
+ /// to find Proto's operator overloads.
         ///
- #define BOOST_PP_LOCAL_MACRO(N) \
- BOOST_PROTO_DEFINE_FUN_OP_CONST(1, N, ~) \
- /**/
-
- /// INTERNAL ONLY
+ /// \c proto::is_proto_expr allows argument-dependent lookup
+ /// to find Proto's operator overloads. For example:
         ///
- #define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_DEC(BOOST_PROTO_MAX_FUNCTION_CALL_ARITY))
- #include BOOST_PP_LOCAL_ITERATE()
-
- #endif
- };
-
- /// \brief extends\<\> class template for adding behaviors to a Proto expression template
- ///
- template<typename Expr, typename Derived, typename Domain>
- struct extends<Expr, Derived, Domain, 0>
- {
- extends()
- : proto_expr_()
- {}
-
- extends(extends const &that)
- : proto_expr_(that.proto_expr_)
- {}
-
- extends(Expr const &expr_)
- : proto_expr_(expr_)
- {}
-
- BOOST_PROTO_BASIC_EXTENDS_(Expr, Derived, Domain)
- BOOST_PROTO_EXTENDS_ASSIGN()
- BOOST_PROTO_EXTENDS_SUBSCRIPT()
-
- // Instead of using BOOST_PROTO_EXTENDS_FUNCTION, which uses
- // nested preprocessor loops, use file iteration here to generate
- // the operator() overloads, which is more efficient.
- BOOST_PROTO_EXTENDS_FUNCTION_()
-
- #ifdef BOOST_HAS_VARIADIC_TMPL
- BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(0)
- BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1)
- #else
-
- /// INTERNAL ONLY
+ /// \code
+ /// template<typename T, typename Dummy = proto::is_proto_expr>
+ /// struct my_terminal
+ /// {
+ /// BOOST_PROTO_BASIC_EXTENDS(
+ /// typename proto::terminal<T>::type
+ /// , my_terminal<T>
+ /// , default_domain
+ /// )
+ /// };
         ///
- #define BOOST_PP_LOCAL_MACRO(N) \
- BOOST_PROTO_DEFINE_FUN_OP(1, N, ~) \
- /**/
+ /// // ...
+ /// my_terminal<int> _1, _2;
+ /// _1 + _2; // OK, uses proto::operator+
+ /// \endcode
+ ///
+ /// Without the second \c Dummy template parameter, Proto's operator
+ /// overloads would not be considered by name lookup.
+ struct is_proto_expr
+ {};
 
- /// INTERNAL ONLY
+ /// \brief extends\<\> class template for adding behaviors to a Proto expression template
         ///
- #define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_DEC(BOOST_PROTO_MAX_FUNCTION_CALL_ARITY))
- #include BOOST_PP_LOCAL_ITERATE()
+ template<
+ typename Expr
+ , typename Derived
+ , typename Domain // = proto::default_domain
+ , long Arity // = Expr::proto_arity_c
+ >
+ struct extends
+ {
+ extends()
+ : proto_expr_()
+ {}
+
+ extends(extends const &that)
+ : proto_expr_(that.proto_expr_)
+ {}
+
+ extends(Expr const &expr_)
+ : proto_expr_(expr_)
+ {}
+
+ BOOST_PROTO_BASIC_EXTENDS_(Expr, Derived, Domain)
+ BOOST_PROTO_EXTENDS_ASSIGN_CONST()
+ BOOST_PROTO_EXTENDS_SUBSCRIPT_CONST()
+
+ // Instead of using BOOST_PROTO_EXTENDS_FUNCTION, which uses
+ // nested preprocessor loops, use file iteration here to generate
+ // the operator() overloads, which is more efficient.
+ BOOST_PROTO_EXTENDS_FUNCTION_()
+
+ #ifdef BOOST_HAS_VARIADIC_TMPL
+ BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1)
+ #else
+ /// INTERNAL ONLY
+ ///
+ #define BOOST_PP_LOCAL_MACRO(N) \
+ BOOST_PROTO_DEFINE_FUN_OP_CONST(1, N, ~) \
+ /**/
 
- #endif
- };
+ /// INTERNAL ONLY
+ ///
+ #define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_DEC(BOOST_PROTO_MAX_FUNCTION_CALL_ARITY))
+ #include BOOST_PP_LOCAL_ITERATE()
 
- /// INTERNAL ONLY
- ///
- template<typename This, typename Fun, typename Domain>
- struct virtual_member
- {
- typedef
- expr<tag::member, list2<This &, expr<tag::terminal, term<Fun> > const &>, 2>
- proto_base_expr;
- typedef Domain proto_domain;
- typedef virtual_member<This, Fun, Domain> proto_derived_expr;
- typedef typename proto_base_expr::proto_tag proto_tag;
- typedef typename proto_base_expr::proto_args proto_args;
- typedef typename proto_base_expr::proto_arity proto_arity;
- typedef typename proto_base_expr::address_of_hack_type_ proto_address_of_hack_type_;
- typedef void proto_is_expr_; /**< INTERNAL ONLY */
- BOOST_STATIC_CONSTANT(long, proto_arity_c = proto_base_expr::proto_arity_c);
- BOOST_PROTO_FUSION_DEFINE_TAG(boost::proto::tag::proto_expr)
- BOOST_PP_REPEAT(BOOST_PROTO_MAX_ARITY, BOOST_PROTO_EXTENDS_CHILD, ~)
- typedef void proto_is_aggregate_; /**< INTERNAL ONLY */
-
- BOOST_PROTO_EXTENDS_ASSIGN()
- BOOST_PROTO_EXTENDS_SUBSCRIPT()
- BOOST_PROTO_EXTENDS_FUNCTION()
+ #endif
+ };
 
- proto_base_expr const proto_base() const
+ /// \brief extends\<\> class template for adding behaviors to a Proto expression template
+ ///
+ template<typename Expr, typename Derived, typename Domain>
+ struct extends<Expr, Derived, Domain, 0>
         {
- proto_base_expr that = {this->child0(), this->child1()};
- return that;
- }
+ extends()
+ : proto_expr_()
+ {}
+
+ extends(extends const &that)
+ : proto_expr_(that.proto_expr_)
+ {}
+
+ extends(Expr const &expr_)
+ : proto_expr_(expr_)
+ {}
+
+ BOOST_PROTO_BASIC_EXTENDS_(Expr, Derived, Domain)
+ BOOST_PROTO_EXTENDS_ASSIGN()
+ BOOST_PROTO_EXTENDS_SUBSCRIPT()
+
+ // Instead of using BOOST_PROTO_EXTENDS_FUNCTION, which uses
+ // nested preprocessor loops, use file iteration here to generate
+ // the operator() overloads, which is more efficient.
+ BOOST_PROTO_EXTENDS_FUNCTION_()
+
+ #ifdef BOOST_HAS_VARIADIC_TMPL
+ BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(0)
+ BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1)
+ #else
+
+ /// INTERNAL ONLY
+ ///
+ #define BOOST_PP_LOCAL_MACRO(N) \
+ BOOST_PROTO_DEFINE_FUN_OP(1, N, ~) \
+ /**/
 
- proto_child0 child0() const
- {
- return *(This *)((char *)this - BOOST_PROTO_OFFSETOF(This, proto_member_union_start_));
- }
+ /// INTERNAL ONLY
+ ///
+ #define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_DEC(BOOST_PROTO_MAX_FUNCTION_CALL_ARITY))
+ #include BOOST_PP_LOCAL_ITERATE()
+
+ #endif
+ };
 
- proto_child1 child1() const
+ /// INTERNAL ONLY
+ ///
+ template<typename This, typename Fun, typename Domain>
+ struct virtual_member
         {
- static expr<tag::terminal, term<Fun>, 0> const that = {Fun()};
- return that;
- }
- };
+ typedef
+ expr<tag::member, list2<This &, expr<tag::terminal, term<Fun> > const &>, 2>
+ proto_base_expr;
+ typedef Domain proto_domain;
+ typedef virtual_member<This, Fun, Domain> proto_derived_expr;
+ typedef typename proto_base_expr::proto_tag proto_tag;
+ typedef typename proto_base_expr::proto_args proto_args;
+ typedef typename proto_base_expr::proto_arity proto_arity;
+ typedef typename proto_base_expr::address_of_hack_type_ proto_address_of_hack_type_;
+ typedef void proto_is_expr_; /**< INTERNAL ONLY */
+ BOOST_STATIC_CONSTANT(long, proto_arity_c = proto_base_expr::proto_arity_c);
+ typedef boost::proto::tag::proto_expr fusion_tag;
+ BOOST_PP_REPEAT(BOOST_PROTO_MAX_ARITY, BOOST_PROTO_EXTENDS_CHILD, ~)
+ typedef void proto_is_aggregate_; /**< INTERNAL ONLY */
+
+ BOOST_PROTO_EXTENDS_ASSIGN()
+ BOOST_PROTO_EXTENDS_SUBSCRIPT()
+ BOOST_PROTO_EXTENDS_FUNCTION()
+
+ proto_base_expr const proto_base() const
+ {
+ proto_base_expr that = {this->child0(), this->child1()};
+ return that;
+ }
+
+ proto_child0 child0() const
+ {
+ return *(This *)((char *)this - BOOST_PROTO_OFFSETOF(This, proto_member_union_start_));
+ }
+
+ proto_child1 child1() const
+ {
+ static expr<tag::terminal, term<Fun>, 0> const that = {Fun()};
+ return that;
+ }
+ };
 
- /// INTERNAL ONLY
- ///
- #define BOOST_PROTO_EXTENDS_MEMBER_(R, DATA, ELEM) \
- boost::proto::exprns_::virtual_member< \
- proto_derived_expr \
- , BOOST_PP_TUPLE_ELEM(2, 0, ELEM) \
- , proto_domain \
- > BOOST_PP_TUPLE_ELEM(2, 1, ELEM); \
- /**/
+ /// INTERNAL ONLY
+ ///
+ #define BOOST_PROTO_EXTENDS_MEMBER_(R, DATA, ELEM) \
+ boost::proto::exprns_::virtual_member< \
+ proto_derived_expr \
+ , BOOST_PP_TUPLE_ELEM(2, 0, ELEM) \
+ , proto_domain \
+ > BOOST_PP_TUPLE_ELEM(2, 1, ELEM); \
+ /**/
 
- /// \brief For declaring virtual data members in an extension class.
- ///
- #define BOOST_PROTO_EXTENDS_MEMBERS(SEQ) \
- union \
- { \
- char proto_member_union_start_; \
- BOOST_PP_SEQ_FOR_EACH(BOOST_PROTO_EXTENDS_MEMBER_, ~, SEQ) \
- }; \
- /**/
+ /// \brief For declaring virtual data members in an extension class.
+ ///
+ #define BOOST_PROTO_EXTENDS_MEMBERS(SEQ) \
+ union \
+ { \
+ char proto_member_union_start_; \
+ BOOST_PP_SEQ_FOR_EACH(BOOST_PROTO_EXTENDS_MEMBER_, ~, SEQ) \
+ }; \
+ /**/
 
- BOOST_PROTO_END_ADL_NAMESPACE(exprns_)
+ }
 
 }}
 

Modified: trunk/boost/proto/fusion.hpp
==============================================================================
--- trunk/boost/proto/fusion.hpp (original)
+++ trunk/boost/proto/fusion.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,14 +9,11 @@
 #ifndef BOOST_PROTO_FUSION_HPP_EAN_11_04_2006
 #define BOOST_PROTO_FUSION_HPP_EAN_11_04_2006
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/config.hpp>
-#include <boost/version.hpp>
 #include <boost/type_traits/remove_reference.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/long.hpp>
 #include <boost/mpl/sequence_tag_fwd.hpp>
-#if BOOST_VERSION >= 103500
 #include <boost/fusion/include/is_view.hpp>
 #include <boost/fusion/include/tag_of_fwd.hpp>
 #include <boost/fusion/include/category_of.hpp>
@@ -30,21 +27,9 @@
 #include <boost/fusion/sequence/intrinsic/ext_/segments.hpp>
 #include <boost/fusion/sequence/intrinsic/ext_/size_s.hpp>
 #include <boost/fusion/view/ext_/segmented_iterator.hpp>
-#else
-#include <boost/spirit/fusion/sequence/is_sequence.hpp>
-#include <boost/spirit/fusion/sequence/begin.hpp>
-#include <boost/spirit/fusion/sequence/end.hpp>
-#include <boost/spirit/fusion/sequence/at.hpp>
-#include <boost/spirit/fusion/sequence/value_at.hpp>
-#include <boost/spirit/fusion/sequence/single_view.hpp>
-#include <boost/spirit/fusion/sequence/transform_view.hpp>
-#include <boost/proto/detail/reverse.hpp>
-#include <boost/proto/detail/pop_front.hpp>
-#endif
 #include <boost/proto/proto_fwd.hpp>
 #include <boost/proto/traits.hpp>
 #include <boost/proto/eval.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 #if BOOST_MSVC
 #pragma warning(push)
@@ -70,8 +55,8 @@
             typedef Expr expr_type;
             typedef typename Expr::proto_tag proto_tag;
             BOOST_STATIC_CONSTANT(long, index = Pos);
- BOOST_PROTO_FUSION_DEFINE_CATEGORY(fusion::random_access_traversal_tag)
- BOOST_PROTO_FUSION_DEFINE_TAG(tag::proto_expr_iterator)
+ typedef fusion::random_access_traversal_tag category;
+ typedef tag::proto_expr_iterator fusion_tag;
 
             expr_iterator(Expr const &e)
               : expr(e)
@@ -85,8 +70,8 @@
         {
             typedef Expr expr_type;
             typedef typename Expr::proto_tag proto_tag;
- BOOST_PROTO_FUSION_DEFINE_CATEGORY(fusion::forward_traversal_tag)
- BOOST_PROTO_FUSION_DEFINE_TAG(tag::proto_flat_view)
+ typedef fusion::forward_traversal_tag category;
+ typedef tag::proto_flat_view fusion_tag;
 
             explicit flat_view(Expr &e)
               : expr_(e)
@@ -190,12 +175,12 @@
             struct result<This(Expr)>
             {
                 typedef
- typename fusion::BOOST_PROTO_FUSION_RESULT_OF::pop_front<UNREF(Expr) const>::type
+ typename fusion::result_of::pop_front<UNREF(Expr) const>::type
                 type;
             };
 
             template<typename Expr>
- typename fusion::BOOST_PROTO_FUSION_RESULT_OF::pop_front<Expr const>::type
+ typename fusion::result_of::pop_front<Expr const>::type
             operator ()(Expr const &e) const
             {
                 return fusion::pop_front(e);
@@ -221,12 +206,12 @@
             struct result<This(Expr)>
             {
                 typedef
- typename fusion::BOOST_PROTO_FUSION_RESULT_OF::reverse<UNREF(Expr) const>::type
+ typename fusion::result_of::reverse<UNREF(Expr) const>::type
                 type;
             };
 
             template<typename Expr>
- typename fusion::BOOST_PROTO_FUSION_RESULT_OF::reverse<Expr const>::type
+ typename fusion::result_of::reverse<Expr const>::type
             operator ()(Expr const &e) const
             {
                 return fusion::reverse(e);
@@ -305,26 +290,9 @@
     };
 }}
 
-// Don't bother emitting all this into the Doxygen-generated
-// reference section. It's enough to say that Proto expressions
-// are valid Fusion sequence without showing all this gunk.
-#ifndef BOOST_PROTO_BUILDING_DOCS
-
 namespace boost { namespace fusion
 {
- #if BOOST_VERSION < 103500
- template<typename Tag, typename Args, long Arity>
- struct is_sequence<proto::expr<Tag, Args, Arity> >
- : mpl::true_
- {};
-
- template<typename Tag, typename Args, long Arity>
- struct is_sequence<proto::expr<Tag, Args, Arity> const>
- : mpl::true_
- {};
- #endif
-
- namespace BOOST_PROTO_FUSION_EXTENSION
+ namespace extension
     {
 
         template<typename Tag>
@@ -379,16 +347,6 @@
             };
         };
 
- #if BOOST_VERSION < 103500
- template<typename Tag>
- struct value_impl;
-
- template<>
- struct value_impl<proto::tag::proto_expr_iterator>
- : value_of_impl<proto::tag::proto_expr_iterator>
- {};
- #endif
-
         template<typename Tag>
         struct deref_impl;
 
@@ -489,7 +447,6 @@
             {};
         };
 
- #if BOOST_VERSION >= 103500
         template<typename Tag>
         struct category_of_impl;
 
@@ -502,7 +459,6 @@
                 typedef random_access_traversal_tag type;
             };
         };
- #endif
 
         template<typename Tag>
         struct size_impl;
@@ -631,7 +587,6 @@
             };
         };
 
- #if BOOST_VERSION >= 103500
         template<typename Tag>
         struct is_segmented_impl;
 
@@ -703,7 +658,6 @@
               : fusion::segmented_size<Sequence>
             {};
         };
- #endif
 
     }
 
@@ -718,8 +672,6 @@
     };
 }}
 
-#endif // BOOST_PROTO_BUILDING_DOCS
-
 #undef UNREF
 
 #if BOOST_MSVC

Modified: trunk/boost/proto/generate.hpp
==============================================================================
--- trunk/boost/proto/generate.hpp (original)
+++ trunk/boost/proto/generate.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -11,7 +11,6 @@
     #ifndef BOOST_PROTO_GENERATE_HPP_EAN_02_13_2007
     #define BOOST_PROTO_GENERATE_HPP_EAN_02_13_2007
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/config.hpp>
     #include <boost/utility/result_of.hpp>
     #include <boost/preprocessor/cat.hpp>
@@ -20,7 +19,6 @@
     #include <boost/utility/enable_if.hpp>
     #include <boost/proto/proto_fwd.hpp>
     #include <boost/proto/args.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     namespace boost { namespace proto
     {
@@ -75,242 +73,241 @@
 
         }
 
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(generatorns_)
-
- /// \brief A simple generator that passes an expression
- /// through unchanged.
- ///
- /// Generators are intended for use as the first template parameter
- /// to the \c domain\<\> class template and control if and how
- /// expressions within that domain are to be customized.
- /// The \c default_generator makes no modifications to the expressions
- /// passed to it.
- struct default_generator
+ namespace generatorns_
         {
- BOOST_PROTO_CALLABLE()
-
- template<typename Sig>
- struct result;
-
- template<typename This, typename Expr>
- struct result<This(Expr)>
+ /// \brief A simple generator that passes an expression
+ /// through unchanged.
+ ///
+ /// Generators are intended for use as the first template parameter
+ /// to the \c domain\<\> class template and control if and how
+ /// expressions within that domain are to be customized.
+ /// The \c default_generator makes no modifications to the expressions
+ /// passed to it.
+ struct default_generator
             {
- typedef Expr type;
- };
-
- /// \param expr A Proto expression
- /// \return expr
- template<typename Expr>
- #ifdef BOOST_HAS_DECLTYPE
- Expr
- #else
- Expr const &
- #endif
- operator ()(Expr const &e) const
- {
- return e;
- }
- };
-
- /// \brief A generator that wraps expressions passed
- /// to it in the specified extension wrapper.
- ///
- /// Generators are intended for use as the first template parameter
- /// to the \c domain\<\> class template and control if and how
- /// expressions within that domain are to be customized.
- /// \c generator\<\> wraps each expression passed to it in
- /// the \c Extends\<\> wrapper.
- template<template<typename> class Extends>
- struct generator
- {
- BOOST_PROTO_CALLABLE()
+ BOOST_PROTO_CALLABLE()
 
- template<typename Sig>
- struct result;
+ template<typename Sig>
+ struct result;
 
- template<typename This, typename Expr>
- struct result<This(Expr)>
- {
- typedef Extends<Expr> type;
- };
+ template<typename This, typename Expr>
+ struct result<This(Expr)>
+ {
+ typedef Expr type;
+ };
 
- template<typename This, typename Expr>
- struct result<This(Expr &)>
- {
- typedef Extends<Expr> type;
+ /// \param expr A Proto expression
+ /// \return expr
+ template<typename Expr>
+ #ifdef BOOST_HAS_DECLTYPE
+ Expr
+ #else
+ Expr const &
+ #endif
+ operator ()(Expr const &e) const
+ {
+ return e;
+ }
             };
 
- template<typename This, typename Expr>
- struct result<This(Expr const &)>
+ /// \brief A generator that wraps expressions passed
+ /// to it in the specified extension wrapper.
+ ///
+ /// Generators are intended for use as the first template parameter
+ /// to the \c domain\<\> class template and control if and how
+ /// expressions within that domain are to be customized.
+ /// \c generator\<\> wraps each expression passed to it in
+ /// the \c Extends\<\> wrapper.
+ template<template<typename> class Extends>
+ struct generator
             {
- typedef Extends<Expr> type;
- };
+ BOOST_PROTO_CALLABLE()
 
- /// \param expr A Proto expression
- /// \return Extends<Expr>(expr)
- template<typename Expr>
- Extends<Expr> operator ()(Expr const &e) const
- {
- return Extends<Expr>(e);
- }
- };
+ template<typename Sig>
+ struct result;
 
- /// \brief A generator that wraps expressions passed
- /// to it in the specified extension wrapper and uses
- /// aggregate initialization for the wrapper.
- ///
- /// Generators are intended for use as the first template parameter
- /// to the \c domain\<\> class template and control if and how
- /// expressions within that domain are to be customized.
- /// \c pod_generator\<\> wraps each expression passed to it in
- /// the \c Extends\<\> wrapper, and uses aggregate initialzation
- /// for the wrapped object.
- template<template<typename> class Extends>
- struct pod_generator
- {
- BOOST_PROTO_CALLABLE()
+ template<typename This, typename Expr>
+ struct result<This(Expr)>
+ {
+ typedef Extends<Expr> type;
+ };
 
- template<typename Sig>
- struct result;
+ template<typename This, typename Expr>
+ struct result<This(Expr &)>
+ {
+ typedef Extends<Expr> type;
+ };
 
- template<typename This, typename Expr>
- struct result<This(Expr)>
- {
- typedef Extends<Expr> type;
- };
+ template<typename This, typename Expr>
+ struct result<This(Expr const &)>
+ {
+ typedef Extends<Expr> type;
+ };
 
- template<typename This, typename Expr>
- struct result<This(Expr &)>
- {
- typedef Extends<Expr> type;
+ /// \param expr A Proto expression
+ /// \return Extends<Expr>(expr)
+ template<typename Expr>
+ Extends<Expr> operator ()(Expr const &e) const
+ {
+ return Extends<Expr>(e);
+ }
             };
 
- template<typename This, typename Expr>
- struct result<This(Expr const &)>
+ /// \brief A generator that wraps expressions passed
+ /// to it in the specified extension wrapper and uses
+ /// aggregate initialization for the wrapper.
+ ///
+ /// Generators are intended for use as the first template parameter
+ /// to the \c domain\<\> class template and control if and how
+ /// expressions within that domain are to be customized.
+ /// \c pod_generator\<\> wraps each expression passed to it in
+ /// the \c Extends\<\> wrapper, and uses aggregate initialzation
+ /// for the wrapped object.
+ template<template<typename> class Extends>
+ struct pod_generator
             {
- typedef Extends<Expr> type;
- };
+ BOOST_PROTO_CALLABLE()
 
- /// \param expr The expression to wrap
- /// \return <tt>Extends\<Expr\> that = {expr}; return that;</tt>
- template<typename Expr>
- Extends<Expr> operator ()(Expr const &e) const
- {
- Extends<Expr> that = {e};
- return that;
- }
- };
+ template<typename Sig>
+ struct result;
 
- /// \brief A generator that replaces child nodes held by
- /// reference with ones held by value. Use with
- /// \c compose_generators to forward that result to another
- /// generator.
- ///
- /// Generators are intended for use as the first template parameter
- /// to the \c domain\<\> class template and control if and how
- /// expressions within that domain are to be customized.
- /// \c by_value_generator ensures all child nodes are
- /// held by value. This generator is typically composed with a
- /// second generator for further processing, as
- /// <tt>compose_generators\<by_value_generator, MyGenerator\></tt>.
- struct by_value_generator
- {
- BOOST_PROTO_CALLABLE()
+ template<typename This, typename Expr>
+ struct result<This(Expr)>
+ {
+ typedef Extends<Expr> type;
+ };
 
- template<typename Sig>
- struct result;
+ template<typename This, typename Expr>
+ struct result<This(Expr &)>
+ {
+ typedef Extends<Expr> type;
+ };
 
- template<typename This, typename Expr>
- struct result<This(Expr)>
- {
- typedef
- typename detail::by_value_generator_<Expr>::type
- type;
- };
+ template<typename This, typename Expr>
+ struct result<This(Expr const &)>
+ {
+ typedef Extends<Expr> type;
+ };
 
- template<typename This, typename Expr>
- struct result<This(Expr &)>
- {
- typedef
- typename detail::by_value_generator_<Expr>::type
- type;
+ /// \param expr The expression to wrap
+ /// \return <tt>Extends\<Expr\> that = {expr}; return that;</tt>
+ template<typename Expr>
+ Extends<Expr> operator ()(Expr const &e) const
+ {
+ Extends<Expr> that = {e};
+ return that;
+ }
             };
 
- template<typename This, typename Expr>
- struct result<This(Expr const &)>
+ /// \brief A generator that replaces child nodes held by
+ /// reference with ones held by value. Use with
+ /// \c compose_generators to forward that result to another
+ /// generator.
+ ///
+ /// Generators are intended for use as the first template parameter
+ /// to the \c domain\<\> class template and control if and how
+ /// expressions within that domain are to be customized.
+ /// \c by_value_generator ensures all child nodes are
+ /// held by value. This generator is typically composed with a
+ /// second generator for further processing, as
+ /// <tt>compose_generators\<by_value_generator, MyGenerator\></tt>.
+ struct by_value_generator
             {
- typedef
- typename detail::by_value_generator_<Expr>::type
- type;
- };
+ BOOST_PROTO_CALLABLE()
 
- /// \param expr The expression to modify.
- /// \return <tt>deep_copy(expr)</tt>
- template<typename Expr>
- typename result<by_value_generator(Expr)>::type operator ()(Expr const &e) const
- {
- return detail::by_value_generator_<Expr>::make(e);
- }
- };
+ template<typename Sig>
+ struct result;
 
- /// \brief A composite generator that first applies one
- /// transform to an expression and then forwards the result
- /// on to another generator for further transformation.
- ///
- /// Generators are intended for use as the first template parameter
- /// to the \c domain\<\> class template and control if and how
- /// expressions within that domain are to be customized.
- /// \c compose_generators\<\> is a composite generator that first
- /// applies one transform to an expression and then forwards the
- /// result on to another generator for further transformation.
- template<typename First, typename Second>
- struct compose_generators
- {
- BOOST_PROTO_CALLABLE()
+ template<typename This, typename Expr>
+ struct result<This(Expr)>
+ {
+ typedef
+ typename detail::by_value_generator_<Expr>::type
+ type;
+ };
 
- template<typename Sig>
- struct result;
+ template<typename This, typename Expr>
+ struct result<This(Expr &)>
+ {
+ typedef
+ typename detail::by_value_generator_<Expr>::type
+ type;
+ };
 
- template<typename This, typename Expr>
- struct result<This(Expr)>
- {
- typedef
- typename Second::template result<
- Second(typename First::template result<First(Expr)>::type)
- >::type
- type;
+ template<typename This, typename Expr>
+ struct result<This(Expr const &)>
+ {
+ typedef
+ typename detail::by_value_generator_<Expr>::type
+ type;
+ };
+
+ /// \param expr The expression to modify.
+ /// \return <tt>deep_copy(expr)</tt>
+ template<typename Expr>
+ typename result<by_value_generator(Expr)>::type operator ()(Expr const &e) const
+ {
+ return detail::by_value_generator_<Expr>::make(e);
+ }
             };
 
- template<typename This, typename Expr>
- struct result<This(Expr &)>
+ /// \brief A composite generator that first applies one
+ /// transform to an expression and then forwards the result
+ /// on to another generator for further transformation.
+ ///
+ /// Generators are intended for use as the first template parameter
+ /// to the \c domain\<\> class template and control if and how
+ /// expressions within that domain are to be customized.
+ /// \c compose_generators\<\> is a composite generator that first
+ /// applies one transform to an expression and then forwards the
+ /// result on to another generator for further transformation.
+ template<typename First, typename Second>
+ struct compose_generators
             {
- typedef
- typename Second::template result<
- Second(typename First::template result<First(Expr)>::type)
- >::type
- type;
- };
+ BOOST_PROTO_CALLABLE()
 
- template<typename This, typename Expr>
- struct result<This(Expr const &)>
- {
- typedef
- typename Second::template result<
- Second(typename First::template result<First(Expr)>::type)
- >::type
- type;
- };
+ template<typename Sig>
+ struct result;
 
- /// \param expr The expression to modify.
- /// \return Second()(First()(expr))
- template<typename Expr>
- typename result<compose_generators(Expr)>::type operator ()(Expr const &e) const
- {
- return Second()(First()(e));
- }
- };
+ template<typename This, typename Expr>
+ struct result<This(Expr)>
+ {
+ typedef
+ typename Second::template result<
+ Second(typename First::template result<First(Expr)>::type)
+ >::type
+ type;
+ };
+
+ template<typename This, typename Expr>
+ struct result<This(Expr &)>
+ {
+ typedef
+ typename Second::template result<
+ Second(typename First::template result<First(Expr)>::type)
+ >::type
+ type;
+ };
 
- BOOST_PROTO_END_ADL_NAMESPACE(generatorns_)
+ template<typename This, typename Expr>
+ struct result<This(Expr const &)>
+ {
+ typedef
+ typename Second::template result<
+ Second(typename First::template result<First(Expr)>::type)
+ >::type
+ type;
+ };
+
+ /// \param expr The expression to modify.
+ /// \return Second()(First()(expr))
+ template<typename Expr>
+ typename result<compose_generators(Expr)>::type operator ()(Expr const &e) const
+ {
+ return Second()(First()(e));
+ }
+ };
+ }
 
         /// INTERNAL ONLY
         template<>

Modified: trunk/boost/proto/literal.hpp
==============================================================================
--- trunk/boost/proto/literal.hpp (original)
+++ trunk/boost/proto/literal.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,13 +10,11 @@
 #ifndef BOOST_PROTO_LITERAL_HPP_EAN_01_03_2007
 #define BOOST_PROTO_LITERAL_HPP_EAN_01_03_2007
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/config.hpp>
 #include <boost/proto/proto_fwd.hpp>
 #include <boost/proto/expr.hpp>
 #include <boost/proto/traits.hpp>
 #include <boost/proto/extends.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto
 {
@@ -33,7 +31,7 @@
         /// \c proto::default_domain.
         template<
             typename T
- , typename Domain BOOST_PROTO_WHEN_BUILDING_DOCS(= default_domain)
+ , typename Domain // = default_domain
>
         struct literal
           : extends<expr<tag::terminal, term<T>, 0>, literal<T, Domain>, Domain>

Modified: trunk/boost/proto/make_expr.hpp
==============================================================================
--- trunk/boost/proto/make_expr.hpp (original)
+++ trunk/boost/proto/make_expr.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -12,8 +12,6 @@
     #ifndef BOOST_PROTO_MAKE_EXPR_HPP_EAN_04_01_2005
     #define BOOST_PROTO_MAKE_EXPR_HPP_EAN_04_01_2005
 
- #include <boost/proto/detail/prefix.hpp>
- #include <boost/version.hpp>
     #include <boost/config.hpp>
     #include <boost/detail/workaround.hpp>
     #include <boost/preprocessor/cat.hpp>
@@ -28,7 +26,6 @@
     #include <boost/preprocessor/repetition/enum_binary_params.hpp>
     #include <boost/preprocessor/repetition/enum_shifted_params.hpp>
     #include <boost/preprocessor/repetition/enum_trailing_params.hpp>
- #include <boost/preprocessor/repetition/enum_shifted_binary_params.hpp>
     #include <boost/preprocessor/repetition/enum_trailing_binary_params.hpp>
     #include <boost/preprocessor/repetition/repeat.hpp>
     #include <boost/ref.hpp>
@@ -46,20 +43,12 @@
     #include <boost/proto/traits.hpp>
     #include <boost/proto/domain.hpp>
     #include <boost/proto/generate.hpp>
- #if BOOST_VERSION >= 103500
- # include <boost/fusion/include/begin.hpp>
- # include <boost/fusion/include/next.hpp>
- # include <boost/fusion/include/value_of.hpp>
- # include <boost/fusion/include/size.hpp>
- #else
- # include <boost/spirit/fusion/sequence/begin.hpp>
- # include <boost/spirit/fusion/iterator/next.hpp>
- # include <boost/spirit/fusion/iterator/value_of.hpp>
- # include <boost/spirit/fusion/sequence/size.hpp>
- #endif
+ #include <boost/fusion/include/begin.hpp>
+ #include <boost/fusion/include/next.hpp>
+ #include <boost/fusion/include/value_of.hpp>
+ #include <boost/fusion/include/size.hpp>
     #include <boost/proto/detail/poly_function.hpp>
     #include <boost/proto/detail/deprecated.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     #ifdef _MSC_VER
     # pragma warning(push)
@@ -102,7 +91,7 @@
     /// INTERNAL ONLY
     ///
     #define BOOST_PROTO_FUSION_NEXT_ITERATOR_TYPE(Z, N, DATA) \
- typedef typename fusion::BOOST_PROTO_FUSION_RESULT_OF::next< \
+ typedef typename fusion::result_of::next< \
             BOOST_PP_CAT(fusion_iterator, N)>::type \
                 BOOST_PP_CAT(fusion_iterator, BOOST_PP_INC(N)); \
         /**/
@@ -111,7 +100,7 @@
     ///
     #define BOOST_PROTO_FUSION_ITERATORS_TYPE(N) \
         typedef \
- typename fusion::BOOST_PROTO_FUSION_RESULT_OF::begin<Sequence const>::type \
+ typename fusion::result_of::begin<Sequence const>::type \
         fusion_iterator0; \
         BOOST_PP_REPEAT(BOOST_PP_DEC(N), BOOST_PROTO_FUSION_NEXT_ITERATOR_TYPE, fusion_iterator) \
         /**/
@@ -120,7 +109,7 @@
     ///
     #define BOOST_PROTO_FUSION_AT_TYPE(Z, N, DATA) \
         typename add_const< \
- typename fusion::BOOST_PROTO_FUSION_RESULT_OF::value_of< \
+ typename fusion::result_of::value_of< \
                 BOOST_PP_CAT(fusion_iterator, N) \
>::type \
>::type \
@@ -254,8 +243,8 @@
             {
                 typedef
                     typename add_const<
- typename fusion::BOOST_PROTO_FUSION_RESULT_OF::value_of<
- typename fusion::BOOST_PROTO_FUSION_RESULT_OF::begin<Sequence>::type
+ typename fusion::result_of::value_of<
+ typename fusion::result_of::begin<Sequence>::type
>::type
>::type
                 terminal_type;
@@ -269,7 +258,7 @@
 
                 static type const call(Sequence const &sequence)
                 {
- return proto::detail::protoify_<terminal_type, Domain>::call(fusion::BOOST_PROTO_FUSION_AT_C(0, sequence));
+ return proto::detail::protoify_<terminal_type, Domain>::call(fusion::at_c<0>(sequence));
                 }
             };
 
@@ -398,14 +387,9 @@
             /// specialization is selected.)
             template<
                 typename Tag
- , typename A0
- , BOOST_PP_ENUM_SHIFTED_BINARY_PARAMS(
- BOOST_PROTO_MAX_ARITY
- , typename A
- , BOOST_PROTO_WHEN_BUILDING_DOCS(= void) BOOST_PP_INTERCEPT
- )
- , typename Void1 BOOST_PROTO_WHEN_BUILDING_DOCS(= void)
- , typename Void2 BOOST_PROTO_WHEN_BUILDING_DOCS(= void)
+ , BOOST_PP_ENUM_PARAMS(BOOST_PROTO_MAX_ARITY, typename A)
+ , typename Void1 // = void
+ , typename Void2 // = void
>
             struct make_expr
             {
@@ -489,8 +473,8 @@
             template<
                 typename Tag
               , typename Sequence
- , typename Void1 BOOST_PROTO_WHEN_BUILDING_DOCS(= void)
- , typename Void2 BOOST_PROTO_WHEN_BUILDING_DOCS(= void)
+ , typename Void1 // = void
+ , typename Void2 // = void
>
             struct unpack_expr
             {
@@ -505,7 +489,7 @@
                         Tag
                       , deduce_domain
                       , Sequence
- , fusion::BOOST_PROTO_FUSION_RESULT_OF::size<Sequence>::type::value
+ , fusion::result_of::size<Sequence>::type::value
>::type
                 type;
             };
@@ -529,7 +513,7 @@
                         Tag
                       , Domain
                       , Sequence
- , fusion::BOOST_PROTO_FUSION_RESULT_OF::size<Sequence>::type::value
+ , fusion::result_of::size<Sequence>::type::value
>::type
                 type;
             };
@@ -545,7 +529,7 @@
             ///
             /// <tt>functional::make_expr\<Tag\>()(a0, ... aN)</tt>
             /// is equivalent to <tt>proto::make_expr\<Tag\>(a0, ... aN)</tt>.
- template<typename Tag, typename Domain BOOST_PROTO_WHEN_BUILDING_DOCS(= deduce_domain)>
+ template<typename Tag, typename Domain /* = deduce_domain*/>
             struct make_expr
             {
                 BOOST_PROTO_CALLABLE()
@@ -619,7 +603,7 @@
             ///
             /// <tt>functional::unpack_expr\<Tag\>()(seq)</tt>
             /// is equivalent to <tt>proto::unpack_expr\<Tag\>(seq)</tt>.
- template<typename Tag, typename Domain BOOST_PROTO_WHEN_BUILDING_DOCS(= deduce_domain)>
+ template<typename Tag, typename Domain /* = deduce_domain*/>
             struct unpack_expr
             {
                 BOOST_PROTO_CALLABLE()
@@ -653,7 +637,7 @@
                         Tag
                       , Domain
                       , Sequence const
- , fusion::BOOST_PROTO_FUSION_RESULT_OF::size<Sequence>::type::value
+ , fusion::result_of::size<Sequence>::type::value
>::call(sequence);
                 }
             };
@@ -688,7 +672,7 @@
                         Tag
                       , Domain
                       , Sequence const
- , fusion::BOOST_PROTO_FUSION_RESULT_OF::size<Sequence>::type::value
+ , fusion::result_of::size<Sequence>::type::value
>::call(sequence);
                 }
             };
@@ -805,7 +789,7 @@
                 Tag
               , deduce_domain
               , Sequence const
- , fusion::BOOST_PROTO_FUSION_RESULT_OF::size<Sequence>::type::value
+ , fusion::result_of::size<Sequence>::type::value
>::call(sequence);
         }
 
@@ -819,7 +803,7 @@
                 Tag
               , Domain
               , Sequence2 const
- , fusion::BOOST_PROTO_FUSION_RESULT_OF::size<Sequence2>::type::value
+ , fusion::result_of::size<Sequence2>::type::value
>::call(sequence2);
         }
 

Modified: trunk/boost/proto/matches.hpp
==============================================================================
--- trunk/boost/proto/matches.hpp (original)
+++ trunk/boost/proto/matches.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -11,7 +11,6 @@
     #ifndef BOOST_PROTO_MATCHES_HPP_EAN_11_03_2006
     #define BOOST_PROTO_MATCHES_HPP_EAN_11_03_2006
 
- #include <boost/proto/detail/prefix.hpp> // must be first include
     #include <boost/config.hpp>
     #include <boost/detail/workaround.hpp>
     #include <boost/preprocessor/cat.hpp>
@@ -43,7 +42,6 @@
     #include <boost/proto/traits.hpp>
     #include <boost/proto/transform/when.hpp>
     #include <boost/proto/transform/impl.hpp>
- #include <boost/proto/detail/suffix.hpp> // must be last include
 
     // Some compilers (like GCC) need extra help figuring out a template's arity.
     // I use MPL's BOOST_MPL_AUX_LAMBDA_ARITY_PARAM() macro to disambiguate, which
@@ -517,7 +515,8 @@
             {};
         }
 
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(wildcardns_)
+ namespace wildcardns_
+ {
 
             /// \brief A wildcard grammar element that matches any expression,
             /// and a transform that returns the current expression unchanged.
@@ -586,8 +585,7 @@
                     }
                 };
             };
-
- BOOST_PROTO_END_ADL_NAMESPACE(wildcardns_)
+ }
 
         namespace control
         {
@@ -679,8 +677,8 @@
             /// \endcode
             template<
                 typename If
- , typename Then BOOST_PROTO_WHEN_BUILDING_DOCS(= _)
- , typename Else BOOST_PROTO_WHEN_BUILDING_DOCS(= not_<_>)
+ , typename Then // = _
+ , typename Else // = not_<_>
>
             struct if_ : transform<if_<If, Then, Else> >
             {

Modified: trunk/boost/proto/operators.hpp
==============================================================================
--- trunk/boost/proto/operators.hpp (original)
+++ trunk/boost/proto/operators.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,7 +10,6 @@
 #ifndef BOOST_PROTO_OPERATORS_HPP_EAN_04_01_2005
 #define BOOST_PROTO_OPERATORS_HPP_EAN_04_01_2005
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/preprocessor/punctuation/comma.hpp>
 #include <boost/preprocessor/seq/seq.hpp>
 #include <boost/mpl/or.hpp>
@@ -22,7 +21,6 @@
 #include <boost/proto/matches.hpp>
 #include <boost/proto/generate.hpp>
 #include <boost/proto/make_expr.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto
 {
@@ -274,63 +272,63 @@
     } \
     /**/
 
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(exprns_)
-
- BOOST_PROTO_DEFINE_UNARY_OPERATOR(+, tag::unary_plus, 0)
- BOOST_PROTO_DEFINE_UNARY_OPERATOR(-, tag::negate, 0)
- BOOST_PROTO_DEFINE_UNARY_OPERATOR(*, tag::dereference, 0)
- BOOST_PROTO_DEFINE_UNARY_OPERATOR(~, tag::complement, 0)
- BOOST_PROTO_DEFINE_UNARY_OPERATOR(&, tag::address_of, 0)
- BOOST_PROTO_DEFINE_UNARY_OPERATOR(!, tag::logical_not, 0)
- BOOST_PROTO_DEFINE_UNARY_OPERATOR(++, tag::pre_inc, 0)
- BOOST_PROTO_DEFINE_UNARY_OPERATOR(--, tag::pre_dec, 0)
- BOOST_PROTO_DEFINE_UNARY_OPERATOR(++, tag::post_inc, 1)
- BOOST_PROTO_DEFINE_UNARY_OPERATOR(--, tag::post_dec, 1)
-
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(<<, tag::shift_left)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(>>, tag::shift_right)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(*, tag::multiplies)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(/, tag::divides)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(%, tag::modulus)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(+, tag::plus)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(-, tag::minus)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(<, tag::less)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(>, tag::greater)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(<=, tag::less_equal)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(>=, tag::greater_equal)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(==, tag::equal_to)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(!=, tag::not_equal_to)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(||, tag::logical_or)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(&&, tag::logical_and)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(&, tag::bitwise_and)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(|, tag::bitwise_or)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(^, tag::bitwise_xor)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(BOOST_PP_COMMA(), tag::comma)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(->*, tag::mem_ptr)
-
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(<<=, tag::shift_left_assign)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(>>=, tag::shift_right_assign)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(*=, tag::multiplies_assign)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(/=, tag::divides_assign)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(%=, tag::modulus_assign)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(+=, tag::plus_assign)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(-=, tag::minus_assign)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(&=, tag::bitwise_and_assign)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(|=, tag::bitwise_or_assign)
- BOOST_PROTO_DEFINE_BINARY_OPERATOR(^=, tag::bitwise_xor_assign)
-
- /// if_else
- ///
- template<typename A0, typename A1, typename A2>
- typename functional::make_expr<tag::if_else_>::impl<A0 const &, A1 const &, A2 const &>::result_type const
- if_else(A0 const &a0, A1 const &a1, A2 const &a2)
+ namespace exprns_
     {
- return functional::make_expr<tag::if_else_>::impl<A0 const &, A1 const &, A2 const &>()(a0, a1, a2);
- }
 
- BOOST_PROTO_END_ADL_NAMESPACE(exprns_)
+ BOOST_PROTO_DEFINE_UNARY_OPERATOR(+, tag::unary_plus, 0)
+ BOOST_PROTO_DEFINE_UNARY_OPERATOR(-, tag::negate, 0)
+ BOOST_PROTO_DEFINE_UNARY_OPERATOR(*, tag::dereference, 0)
+ BOOST_PROTO_DEFINE_UNARY_OPERATOR(~, tag::complement, 0)
+ BOOST_PROTO_DEFINE_UNARY_OPERATOR(&, tag::address_of, 0)
+ BOOST_PROTO_DEFINE_UNARY_OPERATOR(!, tag::logical_not, 0)
+ BOOST_PROTO_DEFINE_UNARY_OPERATOR(++, tag::pre_inc, 0)
+ BOOST_PROTO_DEFINE_UNARY_OPERATOR(--, tag::pre_dec, 0)
+ BOOST_PROTO_DEFINE_UNARY_OPERATOR(++, tag::post_inc, 1)
+ BOOST_PROTO_DEFINE_UNARY_OPERATOR(--, tag::post_dec, 1)
+
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(<<, tag::shift_left)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(>>, tag::shift_right)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(*, tag::multiplies)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(/, tag::divides)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(%, tag::modulus)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(+, tag::plus)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(-, tag::minus)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(<, tag::less)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(>, tag::greater)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(<=, tag::less_equal)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(>=, tag::greater_equal)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(==, tag::equal_to)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(!=, tag::not_equal_to)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(||, tag::logical_or)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(&&, tag::logical_and)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(&, tag::bitwise_and)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(|, tag::bitwise_or)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(^, tag::bitwise_xor)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(BOOST_PP_COMMA(), tag::comma)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(->*, tag::mem_ptr)
+
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(<<=, tag::shift_left_assign)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(>>=, tag::shift_right_assign)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(*=, tag::multiplies_assign)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(/=, tag::divides_assign)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(%=, tag::modulus_assign)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(+=, tag::plus_assign)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(-=, tag::minus_assign)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(&=, tag::bitwise_and_assign)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(|=, tag::bitwise_or_assign)
+ BOOST_PROTO_DEFINE_BINARY_OPERATOR(^=, tag::bitwise_xor_assign)
+
+ /// if_else
+ ///
+ template<typename A0, typename A1, typename A2>
+ typename functional::make_expr<tag::if_else_>::impl<A0 const &, A1 const &, A2 const &>::result_type const
+ if_else(A0 const &a0, A1 const &a1, A2 const &a2)
+ {
+ return functional::make_expr<tag::if_else_>::impl<A0 const &, A1 const &, A2 const &>()(a0, a1, a2);
+ }
+ }
 
- BOOST_PROTO_WHEN_NOT_BUILDING_DOCS(using exprns_::if_else;)
+ using exprns_::if_else;
 
 #undef BOOST_PROTO_DEFINE_UNARY_OPERATOR
 #undef BOOST_PROTO_DEFINE_BINARY_OPERATOR
@@ -437,13 +435,11 @@
       : mpl::false_
     {};
 
- #ifndef BOOST_PROTO_BUILDING_DOCS
     namespace exops
     {
         BOOST_PROTO_DEFINE_OPERATORS(is_extension, default_domain)
         using proto::if_else;
     }
- #endif
 
 }}
 

Modified: trunk/boost/proto/proto.hpp
==============================================================================
--- trunk/boost/proto/proto.hpp (original)
+++ trunk/boost/proto/proto.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,11 +9,9 @@
 #ifndef BOOST_PROTO_HPP_EAN_04_01_2005
 #define BOOST_PROTO_HPP_EAN_04_01_2005
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/proto/core.hpp>
 #include <boost/proto/debug.hpp>
 #include <boost/proto/context.hpp>
 #include <boost/proto/transform.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 #endif

Modified: trunk/boost/proto/proto_fwd.hpp
==============================================================================
--- trunk/boost/proto/proto_fwd.hpp (original)
+++ trunk/boost/proto/proto_fwd.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,11 +9,9 @@
 #ifndef BOOST_PROTO_FWD_HPP_EAN_04_01_2005
 #define BOOST_PROTO_FWD_HPP_EAN_04_01_2005
 
-#include <boost/proto/detail/prefix.hpp> // must be first include
 #include <cstddef>
 #include <climits>
 #include <boost/config.hpp>
-#include <boost/version.hpp>
 #include <boost/detail/workaround.hpp>
 #include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/punctuation/comma.hpp>
@@ -82,59 +80,6 @@
 # endif
 #endif
 
-#if BOOST_VERSION < 103500
-#define BOOST_PROTO_FUSION_DEFINE_TAG(X) typedef X tag;
-#define BOOST_PROTO_FUSION_DEFINE_CATEGORY(X)
-#define BOOST_PROTO_FUSION_RESULT_OF meta
-#define BOOST_PROTO_FUSION_EXTENSION meta
-#define BOOST_PROTO_FUSION_AT_C(N, X) at<N>(X)
-#else
-#define BOOST_PROTO_FUSION_DEFINE_TAG(X) typedef X fusion_tag;
-#define BOOST_PROTO_FUSION_DEFINE_CATEGORY(X) typedef X category;
-#define BOOST_PROTO_FUSION_RESULT_OF result_of
-#define BOOST_PROTO_FUSION_EXTENSION extension
-#define BOOST_PROTO_FUSION_AT_C(N, X) at_c<N>(X)
-#endif
-
-#include <boost/proto/detail/suffix.hpp> // must be last include
-
-#ifdef BOOST_PROTO_BUILDING_DOCS
-// HACKHACK so Doxygen shows inheritance from mpl::true_ and mpl::false_
-namespace boost
-{
- /// INTERNAL ONLY
- ///
- namespace mpl
- {
- /// INTERNAL ONLY
- ///
- struct true_ {};
- /// INTERNAL ONLY
- ///
- struct false_ {};
- }
-
- /// INTERNAL ONLY
- ///
- namespace fusion
- {
- /// INTERNAL ONLY
- ///
- template<typename Function>
- class unfused_generic {};
- }
-}
-#define BOOST_PROTO_WHEN_BUILDING_DOCS(x) x
-#define BOOST_PROTO_WHEN_NOT_BUILDING_DOCS(x)
-#define BOOST_PROTO_BEGIN_ADL_NAMESPACE(x)
-#define BOOST_PROTO_END_ADL_NAMESPACE(x)
-#else
-#define BOOST_PROTO_WHEN_BUILDING_DOCS(x)
-#define BOOST_PROTO_WHEN_NOT_BUILDING_DOCS(x) x
-#define BOOST_PROTO_BEGIN_ADL_NAMESPACE(x) namespace x {
-#define BOOST_PROTO_END_ADL_NAMESPACE(x) }
-#endif
-
 namespace boost { namespace proto
 {
     namespace detail
@@ -254,17 +199,17 @@
     }
 
     ////////////////////////////////////////////////////////////////////////////////////////////////
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(wildcardns_)
+ namespace wildcardns_
+ {
         struct _;
- BOOST_PROTO_END_ADL_NAMESPACE(wildcardns_)
+ }
     ////////////////////////////////////////////////////////////////////////////////////////////////
 
- #ifndef BOOST_PROTO_BUILDING_DOCS
     using wildcardns_::_;
- #endif
 
     ////////////////////////////////////////////////////////////////////////////////////////////////
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(generatorns_)
+ namespace generatorns_
+ {
         struct default_generator;
 
         template<template<typename> class Extends>
@@ -277,36 +222,34 @@
 
         template<typename First, typename Second>
         struct compose_generators;
- BOOST_PROTO_END_ADL_NAMESPACE(generatorns_)
+ }
     ////////////////////////////////////////////////////////////////////////////////////////////////
 
- #ifndef BOOST_PROTO_BUILDING_DOCS
     using generatorns_::default_generator;
     using generatorns_::generator;
     using generatorns_::pod_generator;
     using generatorns_::by_value_generator;
     using generatorns_::compose_generators;
- #endif
 
     ////////////////////////////////////////////////////////////////////////////////////////////////
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(domainns_)
+ namespace domainns_
+ {
         template<typename Generator = default_generator, typename Grammar = proto::_>
         struct domain;
 
         struct default_domain;
 
         struct deduce_domain;
- BOOST_PROTO_END_ADL_NAMESPACE(domainns_)
+ }
     ////////////////////////////////////////////////////////////////////////////////////////////////
 
- #ifndef BOOST_PROTO_BUILDING_DOCS
     using domainns_::domain;
     using domainns_::default_domain;
     using domainns_::deduce_domain;
- #endif
 
     ////////////////////////////////////////////////////////////////////////////////////////////////
- BOOST_PROTO_BEGIN_ADL_NAMESPACE(exprns_)
+ namespace exprns_
+ {
         template<typename Tag, typename Args, long Arity = Args::arity>
         struct expr;
 
@@ -322,14 +265,12 @@
         struct virtual_member;
         
         struct is_proto_expr;
- BOOST_PROTO_END_ADL_NAMESPACE(exprns_)
+ }
     ////////////////////////////////////////////////////////////////////////////////////////////////
 
- #ifndef BOOST_PROTO_BUILDING_DOCS
     using exprns_::expr;
     using exprns_::extends;
     using exprns_::is_proto_expr;
- #endif
 
     namespace control
     {

Modified: trunk/boost/proto/proto_typeof.hpp
==============================================================================
--- trunk/boost/proto/proto_typeof.hpp (original)
+++ trunk/boost/proto/proto_typeof.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,13 +10,11 @@
 #ifndef BOOST_XPRESSIVE_PROTO_PROTO_TYPEOF_H
 #define BOOST_XPRESSIVE_PROTO_PROTO_TYPEOF_H
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/config.hpp>
 #include <boost/typeof/typeof.hpp>
 #include <boost/proto/proto_fwd.hpp>
 #include <boost/proto/deep_copy.hpp>
 #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP()
-#include <boost/proto/detail/suffix.hpp>
 
 BOOST_TYPEOF_REGISTER_TYPE(boost::proto::tag::terminal)
 BOOST_TYPEOF_REGISTER_TYPE(boost::proto::tag::unary_plus)

Modified: trunk/boost/proto/repeat.hpp
==============================================================================
--- trunk/boost/proto/repeat.hpp (original)
+++ trunk/boost/proto/repeat.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,7 +9,6 @@
 #ifndef BOOST_PROTO_REPEAT_HPP_EAN_11_24_2008
 #define BOOST_PROTO_REPEAT_HPP_EAN_11_24_2008
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/facilities/intercept.hpp>
 #include <boost/preprocessor/repetition/enum.hpp>
@@ -18,7 +17,6 @@
 #include <boost/preprocessor/iteration/local.hpp>
 #include <boost/preprocessor/tuple/elem.hpp>
 #include <boost/proto/proto_fwd.hpp> // for BOOST_PROTO_MAX_ARITY
-#include <boost/proto/detail/suffix.hpp>
 
 ////////////////////////////////////////////
 /// INTERNAL ONLY

Modified: trunk/boost/proto/tags.hpp
==============================================================================
--- trunk/boost/proto/tags.hpp (original)
+++ trunk/boost/proto/tags.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,9 +9,7 @@
 #ifndef BOOST_PROTO_TAGS_HPP_EAN_04_01_2005
 #define BOOST_PROTO_TAGS_HPP_EAN_04_01_2005
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/proto/proto_fwd.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto { namespace tag
 {

Modified: trunk/boost/proto/traits.hpp
==============================================================================
--- trunk/boost/proto/traits.hpp (original)
+++ trunk/boost/proto/traits.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -12,7 +12,6 @@
     #ifndef BOOST_PROTO_ARG_TRAITS_HPP_EAN_04_01_2005
     #define BOOST_PROTO_ARG_TRAITS_HPP_EAN_04_01_2005
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/config.hpp>
     #include <boost/detail/workaround.hpp>
     #include <boost/preprocessor/iteration/iterate.hpp>
@@ -44,7 +43,6 @@
     #include <boost/proto/args.hpp>
     #include <boost/proto/tags.hpp>
     #include <boost/proto/transform/pass_through.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     #if BOOST_WORKAROUND( BOOST_MSVC, >= 1400 )
         #pragma warning(push)
@@ -155,7 +153,7 @@
         {};
 
         /// TODO document me!
- template<typename T, typename Void BOOST_PROTO_WHEN_BUILDING_DOCS(= void)>
+ template<typename T, typename Void /* = void*/>
         struct is_transform
           : mpl::false_
         {};
@@ -176,7 +174,7 @@
             /// from <tt>proto::extends\<\></tt> or that uses the
             /// <tt>BOOST_PROTO_BASIC_EXTENDS()</tt> macro.) Otherwise,
             /// <tt>is_expr\<T\>::::value</tt> is \c false.
- template<typename T, typename Void BOOST_PROTO_WHEN_BUILDING_DOCS(= void)>
+ template<typename T, typename Void /* = void*/>
             struct is_expr
               : mpl::false_
             {};
@@ -242,10 +240,10 @@
             /// <tt>boost::result_of\<Domain(expr\< tag::terminal, term\<A\> \>)\>::::type</tt>.
             template<
                 typename T
- , typename Domain BOOST_PROTO_WHEN_BUILDING_DOCS(= default_domain)
- , typename Void BOOST_PROTO_WHEN_BUILDING_DOCS(= void)
+ , typename Domain // = default_domain
+ , typename Void // = void
               #ifdef BOOST_PROTO_BROKEN_PTS
- , typename Void2 BOOST_PROTO_WHEN_BUILDING_DOCS(= void)
+ , typename Void2 // = void
               #endif
>
             struct as_expr
@@ -337,10 +335,10 @@
             /// <tt>boost::result_of\<Domain(expr\< tag::terminal, term\<T &\> \>)\>::::type</tt>.
             template<
                 typename T
- , typename Domain BOOST_PROTO_WHEN_BUILDING_DOCS(= default_domain)
- , typename Void BOOST_PROTO_WHEN_BUILDING_DOCS(= void)
+ , typename Domain // = default_domain
+ , typename Void // = void
               #ifdef BOOST_PROTO_BROKEN_PTS
- , typename Void2 BOOST_PROTO_WHEN_BUILDING_DOCS(= void)
+ , typename Void2 // = void
               #endif
>
             struct as_child
@@ -432,7 +430,7 @@
             ///
             /// <tt>result_of::child\<Expr, N\></tt> is equivalent to
             /// <tt>result_of::child_c\<Expr, N::value\></tt>.
- template<typename Expr, typename N BOOST_PROTO_WHEN_BUILDING_DOCS(= mpl::long_<0>) >
+ template<typename Expr, typename N /* = mpl::long_<0>*/>
             struct child
               : child_c<Expr, N::value>
             {};
@@ -791,7 +789,7 @@
         {
             /// \brief A callable PolymorphicFunctionObject that is
             /// equivalent to the \c as_expr() function.
- template<typename Domain BOOST_PROTO_WHEN_BUILDING_DOCS(= default_domain)>
+ template<typename Domain /* = default_domain*/>
             struct as_expr
             {
                 BOOST_PROTO_CALLABLE()
@@ -845,7 +843,7 @@
 
             /// \brief A callable PolymorphicFunctionObject that is
             /// equivalent to the \c as_child() function.
- template<typename Domain BOOST_PROTO_WHEN_BUILDING_DOCS(= default_domain)>
+ template<typename Domain /* = default_domain*/>
             struct as_child
             {
                 BOOST_PROTO_CALLABLE()
@@ -926,7 +924,7 @@
             /// A callable PolymorphicFunctionObject that is
             /// equivalent to the \c child() function. \c N is required
             /// to be an MPL Integral Constant.
- template<typename N BOOST_PROTO_WHEN_BUILDING_DOCS(= mpl::long_<0>) >
+ template<typename N /* = mpl::long_<0>*/>
             struct child
             {
                 BOOST_PROTO_CALLABLE()

Modified: trunk/boost/proto/transform.hpp
==============================================================================
--- trunk/boost/proto/transform.hpp (original)
+++ trunk/boost/proto/transform.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,7 +9,6 @@
 #ifndef BOOST_PROTO_TRANSFORM_HPP_EAN_06_23_2007
 #define BOOST_PROTO_TRANSFORM_HPP_EAN_06_23_2007
 
-#include <boost/proto/detail/prefix.hpp> // must be first include
 #include <boost/proto/transform/arg.hpp>
 #include <boost/proto/transform/call.hpp>
 #include <boost/proto/transform/default.hpp>
@@ -19,6 +18,5 @@
 #include <boost/proto/transform/make.hpp>
 #include <boost/proto/transform/pass_through.hpp>
 #include <boost/proto/transform/when.hpp>
-#include <boost/proto/detail/suffix.hpp> // must be last include
 
 #endif

Modified: trunk/boost/proto/transform/arg.hpp
==============================================================================
--- trunk/boost/proto/transform/arg.hpp (original)
+++ trunk/boost/proto/transform/arg.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,12 +9,10 @@
 #ifndef BOOST_PROTO_TRANSFORM_ARG_HPP_EAN_11_01_2007
 #define BOOST_PROTO_TRANSFORM_ARG_HPP_EAN_11_01_2007
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/proto/proto_fwd.hpp>
 #include <boost/proto/traits.hpp>
 #include <boost/proto/transform/impl.hpp>
 #include <boost/type_traits/is_array.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto
 {

Modified: trunk/boost/proto/transform/call.hpp
==============================================================================
--- trunk/boost/proto/transform/call.hpp (original)
+++ trunk/boost/proto/transform/call.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,7 +10,6 @@
     #ifndef BOOST_PROTO_TRANSFORM_CALL_HPP_EAN_11_02_2007
     #define BOOST_PROTO_TRANSFORM_CALL_HPP_EAN_11_02_2007
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/preprocessor/cat.hpp>
     #include <boost/preprocessor/facilities/intercept.hpp>
     #include <boost/preprocessor/iteration/iterate.hpp>
@@ -27,7 +26,6 @@
     #include <boost/proto/detail/dont_care.hpp>
     #include <boost/proto/detail/as_lvalue.hpp>
     #include <boost/proto/detail/poly_function.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     namespace boost { namespace proto
     {

Modified: trunk/boost/proto/transform/default.hpp
==============================================================================
--- trunk/boost/proto/transform/default.hpp (original)
+++ trunk/boost/proto/transform/default.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -11,7 +11,6 @@
     #ifndef BOOST_PROTO_TRANSFORM_DEFAULT_HPP_EAN_04_04_2008
     #define BOOST_PROTO_TRANSFORM_DEFAULT_HPP_EAN_04_04_2008
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/preprocessor/iteration/iterate.hpp>
     #include <boost/preprocessor/repetition/repeat.hpp>
     #include <boost/preprocessor/repetition/enum_shifted.hpp>
@@ -27,11 +26,10 @@
     #include <boost/proto/transform/impl.hpp>
     #include <boost/proto/transform/arg.hpp>
     #include <boost/proto/detail/decltype.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     namespace boost { namespace proto
     {
- template<typename Grammar BOOST_PROTO_WHEN_BUILDING_DOCS(= detail::_default)>
+ template<typename Grammar /*= detail::_default*/>
         struct _default
           : transform<_default<Grammar> >
         {

Modified: trunk/boost/proto/transform/fold.hpp
==============================================================================
--- trunk/boost/proto/transform/fold.hpp (original)
+++ trunk/boost/proto/transform/fold.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,24 +10,17 @@
     #ifndef BOOST_PROTO_TRANSFORM_FOLD_HPP_EAN_11_04_2007
     #define BOOST_PROTO_TRANSFORM_FOLD_HPP_EAN_11_04_2007
 
- #include <boost/proto/detail/prefix.hpp>
- #include <boost/version.hpp>
     #include <boost/preprocessor/cat.hpp>
     #include <boost/preprocessor/iteration/iterate.hpp>
     #include <boost/preprocessor/arithmetic/inc.hpp>
     #include <boost/preprocessor/arithmetic/sub.hpp>
     #include <boost/preprocessor/repetition/repeat.hpp>
- #if BOOST_VERSION >= 103500
     #include <boost/fusion/include/fold.hpp>
- #else
- #include <boost/spirit/fusion/algorithm/fold.hpp>
- #endif
     #include <boost/proto/proto_fwd.hpp>
     #include <boost/proto/fusion.hpp>
     #include <boost/proto/traits.hpp>
     #include <boost/proto/transform/call.hpp>
     #include <boost/proto/transform/impl.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     namespace boost { namespace proto
     {
@@ -43,24 +36,17 @@
                 template<typename Sig>
                 struct result;
 
- template<typename This, typename Expr, typename State>
- struct result<This(Expr, State)>
+ template<typename This, typename State, typename Expr>
+ struct result<This(State, Expr)>
                 {
                     typedef
                         typename when<_, Transform>::template impl<Expr, State, Data>::result_type
                     type;
                 };
 
- #if BOOST_VERSION < 103500
- template<typename Expr, typename State>
- struct apply
- : result<as_callable(Expr, State)>
- {};
- #endif
-
- template<typename Expr, typename State>
+ template<typename State, typename Expr>
                 typename when<_, Transform>::template impl<Expr &, State const &, Data>::result_type
- operator ()(Expr &e, State const &s) const
+ operator ()(State const &s, Expr &e) const
                 {
                     return typename when<_, Transform>::template impl<Expr &, State const &, Data>()(e, s, this->v_);
                 }
@@ -69,38 +55,6 @@
                 Data v_;
             };
 
- #if BOOST_VERSION < 103500
- template<typename Sequence, typename Void = void>
- struct as_fusion_sequence_type
- {
- typedef Sequence const type;
- };
-
- template<typename Sequence>
- Sequence const &as_fusion_sequence(Sequence const &sequence, ...)
- {
- return sequence;
- }
-
- template<typename Sequence>
- struct as_fusion_sequence_type<Sequence, typename Sequence::proto_is_expr_>
- {
- typedef typename Sequence::proto_base_expr const type;
- };
-
- template<typename Sequence>
- typename Sequence::proto_base_expr const &as_fusion_sequence(Sequence const &sequence, int)
- {
- return sequence.proto_base();
- }
-
- #define BOOST_PROTO_AS_FUSION_SEQUENCE_TYPE(X) typename detail::as_fusion_sequence_type<X>::type
- #define BOOST_PROTO_AS_FUSION_SEQUENCE(X) detail::as_fusion_sequence(X, 0)
- #else
- #define BOOST_PROTO_AS_FUSION_SEQUENCE_TYPE(X) X
- #define BOOST_PROTO_AS_FUSION_SEQUENCE(X) X
- #endif
-
             template<
                 typename State0
               , typename Fun
@@ -220,8 +174,8 @@
                 fun;
 
                 typedef
- typename fusion::BOOST_PROTO_FUSION_RESULT_OF::fold<
- BOOST_PROTO_AS_FUSION_SEQUENCE_TYPE(sequence)
+ typename fusion::result_of::fold<
+ sequence
                       , state0
                       , fun
>::type
@@ -245,7 +199,7 @@
                     typename when<_, Sequence>::template impl<Expr, State, Data> seq;
                     detail::as_callable<Fun, Data> f(d);
                     return fusion::fold(
- BOOST_PROTO_AS_FUSION_SEQUENCE(seq(e, s, d))
+ seq(e, s, d)
                       , typename when<_, State0>::template impl<Expr, State, Data>()(e, s, d)
                       , f
                     );

Modified: trunk/boost/proto/transform/fold_tree.hpp
==============================================================================
--- trunk/boost/proto/transform/fold_tree.hpp (original)
+++ trunk/boost/proto/transform/fold_tree.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,14 +9,12 @@
 #ifndef BOOST_PROTO_TRANSFORM_FOLD_TREE_HPP_EAN_11_05_2007
 #define BOOST_PROTO_TRANSFORM_FOLD_TREE_HPP_EAN_11_05_2007
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/proto/proto_fwd.hpp>
 #include <boost/proto/traits.hpp>
 #include <boost/proto/matches.hpp>
 #include <boost/proto/transform/fold.hpp>
 #include <boost/proto/transform/impl.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto
 {

Modified: trunk/boost/proto/transform/impl.hpp
==============================================================================
--- trunk/boost/proto/transform/impl.hpp (original)
+++ trunk/boost/proto/transform/impl.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -9,9 +9,7 @@
 #ifndef BOOST_PROTO_TRANSFORM_IMPL_HPP_EAN_04_03_2008
 #define BOOST_PROTO_TRANSFORM_IMPL_HPP_EAN_04_03_2008
 
-#include <boost/proto/detail/prefix.hpp>
 #include <boost/proto/proto_fwd.hpp>
-#include <boost/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto
 {

Modified: trunk/boost/proto/transform/lazy.hpp
==============================================================================
--- trunk/boost/proto/transform/lazy.hpp (original)
+++ trunk/boost/proto/transform/lazy.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,7 +10,6 @@
     #ifndef BOOST_PROTO_TRANSFORM_LAZY_HPP_EAN_12_02_2007
     #define BOOST_PROTO_TRANSFORM_LAZY_HPP_EAN_12_02_2007
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/preprocessor/iteration/iterate.hpp>
     #include <boost/preprocessor/repetition/enum_params.hpp>
     #include <boost/preprocessor/repetition/enum_trailing_params.hpp>
@@ -18,7 +17,6 @@
     #include <boost/proto/transform/make.hpp>
     #include <boost/proto/transform/call.hpp>
     #include <boost/proto/transform/impl.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     namespace boost { namespace proto
     {

Modified: trunk/boost/proto/transform/make.hpp
==============================================================================
--- trunk/boost/proto/transform/make.hpp (original)
+++ trunk/boost/proto/transform/make.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,7 +10,6 @@
     #ifndef BOOST_PROTO_TRANSFORM_MAKE_HPP_EAN_12_02_2007
     #define BOOST_PROTO_TRANSFORM_MAKE_HPP_EAN_12_02_2007
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/detail/workaround.hpp>
     #include <boost/preprocessor/repetition/enum.hpp>
     #include <boost/preprocessor/repetition/enum_params.hpp>
@@ -35,7 +34,6 @@
     #include <boost/proto/transform/impl.hpp>
     #include <boost/proto/detail/as_lvalue.hpp>
     #include <boost/proto/detail/ignore_unused.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     namespace boost { namespace proto
     {

Modified: trunk/boost/proto/transform/pass_through.hpp
==============================================================================
--- trunk/boost/proto/transform/pass_through.hpp (original)
+++ trunk/boost/proto/transform/pass_through.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -13,7 +13,6 @@
     #ifndef BOOST_PROTO_TRANSFORM_PASS_THROUGH_HPP_EAN_12_26_2006
     #define BOOST_PROTO_TRANSFORM_PASS_THROUGH_HPP_EAN_12_26_2006
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/preprocessor/cat.hpp>
     #include <boost/preprocessor/repetition/enum.hpp>
     #include <boost/preprocessor/iteration/iterate.hpp>
@@ -22,7 +21,6 @@
     #include <boost/proto/proto_fwd.hpp>
     #include <boost/proto/args.hpp>
     #include <boost/proto/transform/impl.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     namespace boost { namespace proto
     {

Modified: trunk/boost/proto/transform/when.hpp
==============================================================================
--- trunk/boost/proto/transform/when.hpp (original)
+++ trunk/boost/proto/transform/when.hpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,7 +10,6 @@
     #ifndef BOOST_PROTO_TRANSFORM_WHEN_HPP_EAN_10_29_2007
     #define BOOST_PROTO_TRANSFORM_WHEN_HPP_EAN_10_29_2007
 
- #include <boost/proto/detail/prefix.hpp>
     #include <boost/preprocessor/cat.hpp>
     #include <boost/preprocessor/repetition/enum_params.hpp>
     #include <boost/preprocessor/repetition/enum_trailing_params.hpp>
@@ -21,7 +20,6 @@
     #include <boost/proto/transform/call.hpp>
     #include <boost/proto/transform/make.hpp>
     #include <boost/proto/transform/impl.hpp>
- #include <boost/proto/detail/suffix.hpp>
 
     namespace boost { namespace proto
     {
@@ -53,7 +51,7 @@
         ///
         /// <tt>when\<G,T\>()(e,s,v)</tt> is the same as
         /// <tt>T()(e,s,v)</tt>.
- template<typename Grammar, typename PrimitiveTransform BOOST_PROTO_WHEN_BUILDING_DOCS(= Grammar)>
+ template<typename Grammar, typename PrimitiveTransform /*= Grammar*/>
         struct when
           : PrimitiveTransform
         {

Modified: trunk/libs/proto/test/examples.cpp
==============================================================================
--- trunk/libs/proto/test/examples.cpp (original)
+++ trunk/libs/proto/test/examples.cpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -11,14 +11,9 @@
 #include <boost/proto/core.hpp>
 #include <boost/proto/transform.hpp>
 #include <boost/utility/result_of.hpp>
-#if BOOST_VERSION < 103500
-# include <boost/spirit/fusion/sequence/cons.hpp>
-# include <boost/spirit/fusion/sequence/tuple.hpp>
-#else
-# include <boost/fusion/include/cons.hpp>
-# include <boost/fusion/include/tuple.hpp>
-# include <boost/fusion/include/pop_front.hpp>
-#endif
+#include <boost/fusion/include/cons.hpp>
+#include <boost/fusion/include/tuple.hpp>
+#include <boost/fusion/include/pop_front.hpp>
 #include <boost/test/unit_test.hpp>
 
 namespace mpl = boost::mpl;

Modified: trunk/libs/proto/test/lambda.cpp
==============================================================================
--- trunk/libs/proto/test/lambda.cpp (original)
+++ trunk/libs/proto/test/lambda.cpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -6,19 +6,12 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <sstream>
-#include <boost/version.hpp>
 #include <boost/mpl/int.hpp>
 #include <boost/mpl/min_max.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
 #include <boost/mpl/next_prior.hpp>
-#if BOOST_VERSION < 103500
-# include <boost/spirit/fusion/sequence/at.hpp>
-# include <boost/spirit/fusion/sequence/tuple.hpp>
-namespace boost { namespace fusion { namespace result_of { using namespace meta; }}}
-#else
-# include <boost/fusion/tuple.hpp>
-#endif
+#include <boost/fusion/tuple.hpp>
 #include <boost/typeof/typeof.hpp>
 #include <boost/typeof/std/sstream.hpp>
 #include <boost/typeof/std/ostream.hpp>
@@ -95,11 +88,7 @@
     typename fusion::result_of::at<Tuple, I>::type
     operator ()(proto::tag::terminal, placeholder<I> const &) const
     {
- #if BOOST_VERSION < 103500
- return fusion::at<I::value>(this->args_);
- #else
         return fusion::at<I>(this->args_);
- #endif
     }
 
     Tuple args_;

Modified: trunk/libs/proto/test/make_expr.cpp
==============================================================================
--- trunk/libs/proto/test/make_expr.cpp (original)
+++ trunk/libs/proto/test/make_expr.cpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -6,15 +6,10 @@
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
 #include <sstream>
-#include <boost/version.hpp>
 #include <boost/proto/core.hpp>
 #include <boost/proto/transform.hpp>
 #include <boost/utility/addressof.hpp>
-#if BOOST_VERSION >= 103500
 #include <boost/fusion/tuple.hpp>
-#else
-#include <boost/spirit/fusion/sequence/make_tuple.hpp>
-#endif
 #include <boost/test/unit_test.hpp>
 
 using namespace boost;

Modified: trunk/libs/proto/test/proto_fusion.cpp
==============================================================================
--- trunk/libs/proto/test/proto_fusion.cpp (original)
+++ trunk/libs/proto/test/proto_fusion.cpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -5,11 +5,6 @@
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <boost/version.hpp>
-#if BOOST_VERSION < 103500
-# error This test only works on Boost v1.35
-#endif
-
 #include <boost/proto/core.hpp>
 #include <boost/proto/fusion.hpp>
 #include <boost/fusion/include/for_each.hpp>

Modified: trunk/libs/proto/test/proto_fusion_s.cpp
==============================================================================
--- trunk/libs/proto/test/proto_fusion_s.cpp (original)
+++ trunk/libs/proto/test/proto_fusion_s.cpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -5,11 +5,6 @@
 // Software License, Version 1.0. (See accompanying file
 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-#include <boost/version.hpp>
-#if BOOST_VERSION < 103500
-# error This test only works on Boost v1.35
-#endif
-
 #include <boost/proto/core.hpp>
 #include <boost/proto/fusion.hpp>
 #include <boost/fusion/algorithm/iteration/ext_/for_each_s.hpp>

Modified: trunk/libs/proto/test/toy_spirit2.cpp
==============================================================================
--- trunk/libs/proto/test/toy_spirit2.cpp (original)
+++ trunk/libs/proto/test/toy_spirit2.cpp 2009-10-26 11:15:05 EDT (Mon, 26 Oct 2009)
@@ -10,24 +10,16 @@
 #include <cstring>
 #include <iomanip>
 #include <iostream>
-#include <boost/version.hpp>
 #include <boost/assert.hpp>
 #include <boost/mpl/assert.hpp>
 #include <boost/utility/result_of.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/proto/core.hpp>
 #include <boost/proto/transform.hpp>
-#if BOOST_VERSION < 103500
-# include <boost/spirit/fusion/algorithm/for_each.hpp>
-# include <boost/spirit/fusion/algorithm/fold.hpp>
-# include <boost/spirit/fusion/algorithm/any.hpp>
-# include <boost/spirit/fusion/sequence/cons.hpp>
-#else
-# include <boost/fusion/include/for_each.hpp>
-# include <boost/fusion/include/fold.hpp>
-# include <boost/fusion/include/cons.hpp>
-# include <boost/fusion/include/any.hpp>
-#endif
+#include <boost/fusion/include/for_each.hpp>
+#include <boost/fusion/include/fold.hpp>
+#include <boost/fusion/include/cons.hpp>
+#include <boost/fusion/include/any.hpp>
 #include <boost/test/unit_test.hpp>
 
 namespace boost
@@ -291,18 +283,10 @@
           : parse(p)
         {}
 
- #if BOOST_VERSION < 103500
- template<typename, typename>
- struct apply
- {
- typedef bool type;
- };
- #else
         typedef bool result_type;
- #endif
 
         template<typename T>
- bool operator ()(T const &t, bool success) const
+ bool operator ()(bool success, T const &t) const
         {
             return success && this->parse(t);
         }


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk