Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r75578 - in trunk: boost/proto boost/proto/detail boost/proto/detail/preprocessed boost/proto/transform boost/proto/transform/detail boost/proto/transform/detail/preprocessed libs/proto/preprocess
From: eric_at_[hidden]
Date: 2011-11-20 15:25:55


Author: eric_niebler
Date: 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
New Revision: 75578
URL: http://svn.boost.org/trac/boost/changeset/75578

Log:
apply BOOST_FORCEINLINE patch
Text files modified:
   trunk/boost/proto/detail/as_expr.hpp | 8 +
   trunk/boost/proto/detail/as_lvalue.hpp | 2
   trunk/boost/proto/detail/basic_expr.hpp | 6 +
   trunk/boost/proto/detail/dont_care.hpp | 4
   trunk/boost/proto/detail/expr.hpp | 19 +++
   trunk/boost/proto/detail/expr_funop.hpp | 2
   trunk/boost/proto/detail/funop.hpp | 1
   trunk/boost/proto/detail/generate_by_value.hpp | 2
   trunk/boost/proto/detail/ignore_unused.hpp | 4
   trunk/boost/proto/detail/make_expr.hpp | 2
   trunk/boost/proto/detail/make_expr_.hpp | 2
   trunk/boost/proto/detail/make_expr_funop.hpp | 1
   trunk/boost/proto/detail/memfun_funop.hpp | 1
   trunk/boost/proto/detail/preprocessed/basic_expr.hpp | 35 ++++++
   trunk/boost/proto/detail/preprocessed/expr.hpp | 214 ++++++++++++++++++++++++++++++++++++++++
   trunk/boost/proto/detail/preprocessed/expr_variadic.hpp | 106 +++++++++++++++++++
   trunk/boost/proto/detail/preprocessed/extends_funop.hpp | 20 +-
   trunk/boost/proto/detail/preprocessed/extends_funop_const.hpp | 20 +-
   trunk/boost/proto/detail/preprocessed/funop.hpp | 10 +
   trunk/boost/proto/detail/preprocessed/generate_by_value.hpp | 20 +++
   trunk/boost/proto/detail/preprocessed/make_expr.hpp | 18 +++
   trunk/boost/proto/detail/preprocessed/make_expr_.hpp | 11 ++
   trunk/boost/proto/detail/preprocessed/make_expr_funop.hpp | 9 +
   trunk/boost/proto/detail/preprocessed/memfun_funop.hpp | 10 +
   trunk/boost/proto/detail/preprocessed/traits.hpp | 22 ++++
   trunk/boost/proto/detail/preprocessed/unpack_expr_.hpp | 21 +++
   trunk/boost/proto/detail/traits.hpp | 2
   trunk/boost/proto/detail/unpack_expr_.hpp | 3
   trunk/boost/proto/domain.hpp | 2
   trunk/boost/proto/expr.hpp | 4
   trunk/boost/proto/extends.hpp | 18 +++
   trunk/boost/proto/generate.hpp | 7 +
   trunk/boost/proto/make_expr.hpp | 6 +
   trunk/boost/proto/operators.hpp | 9 +
   trunk/boost/proto/traits.hpp | 38 +++++++
   trunk/boost/proto/transform/call.hpp | 13 ++
   trunk/boost/proto/transform/detail/call.hpp | 1
   trunk/boost/proto/transform/detail/construct_funop.hpp | 1
   trunk/boost/proto/transform/detail/construct_pod_funop.hpp | 1
   trunk/boost/proto/transform/detail/make.hpp | 4
   trunk/boost/proto/transform/detail/make_gcc_workaround.hpp | 2
   trunk/boost/proto/transform/detail/pass_through_impl.hpp | 1
   trunk/boost/proto/transform/detail/preprocessed/call.hpp | 7 +
   trunk/boost/proto/transform/detail/preprocessed/construct_funop.hpp | 10 +
   trunk/boost/proto/transform/detail/preprocessed/construct_pod_funop.hpp | 10 +
   trunk/boost/proto/transform/detail/preprocessed/make.hpp | 44 ++++++++
   trunk/boost/proto/transform/detail/preprocessed/make_gcc_workaround.hpp | 22 ++++
   trunk/boost/proto/transform/detail/preprocessed/pass_through_impl.hpp | 10 +
   trunk/boost/proto/transform/detail/preprocessed/when.hpp | 11 ++
   trunk/boost/proto/transform/detail/when.hpp | 1
   trunk/boost/proto/transform/impl.hpp | 8 +
   trunk/boost/proto/transform/make.hpp | 3
   trunk/boost/proto/transform/pass_through.hpp | 1
   trunk/libs/proto/preprocess/wave.cfg | 1
   54 files changed, 788 insertions(+), 22 deletions(-)

Modified: trunk/boost/proto/detail/as_expr.hpp
==============================================================================
--- trunk/boost/proto/detail/as_expr.hpp (original)
+++ trunk/boost/proto/detail/as_expr.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -45,6 +45,7 @@
         typedef proto::expr<proto::tag::terminal, term<value_type>, 0> expr_type;
         typedef typename Generator::template result<Generator(expr_type)>::type result_type;
 
+ BOOST_FORCEINLINE
         result_type operator()(T &t) const
         {
             return Generator()(expr_type::make(t));
@@ -59,6 +60,7 @@
         typedef proto::basic_expr<proto::tag::terminal, term<value_type>, 0> expr_type;
         typedef typename Generator::template result<Generator(expr_type)>::type result_type;
 
+ BOOST_FORCEINLINE
         result_type operator()(T &t) const
         {
             return Generator()(expr_type::make(t));
@@ -72,6 +74,7 @@
         typedef typename term_traits<T &>::value_type value_type;
         typedef proto::expr<proto::tag::terminal, term<value_type>, 0> result_type;
 
+ BOOST_FORCEINLINE
         result_type operator()(T &t) const
         {
             return result_type::make(t);
@@ -85,6 +88,7 @@
         typedef typename term_traits<T &>::value_type value_type;
         typedef proto::basic_expr<proto::tag::terminal, term<value_type>, 0> result_type;
 
+ BOOST_FORCEINLINE
         result_type operator()(T &t) const
         {
             return result_type::make(t);
@@ -107,6 +111,7 @@
         typedef proto::expr<proto::tag::terminal, term<reference>, 0> expr_type;
         typedef typename Generator::template result<Generator(expr_type)>::type result_type;
 
+ BOOST_FORCEINLINE
         result_type operator()(T &t) const
         {
             return Generator()(expr_type::make(t));
@@ -125,6 +130,7 @@
         typedef proto::basic_expr<proto::tag::terminal, term<reference>, 0> expr_type;
         typedef typename Generator::template result<Generator(expr_type)>::type result_type;
 
+ BOOST_FORCEINLINE
         result_type operator()(T &t) const
         {
             return Generator()(expr_type::make(t));
@@ -142,6 +148,7 @@
     #endif
         typedef proto::expr<proto::tag::terminal, term<reference>, 0> result_type;
 
+ BOOST_FORCEINLINE
         result_type operator()(T &t) const
         {
             return result_type::make(t);
@@ -159,6 +166,7 @@
     #endif
         typedef proto::basic_expr<proto::tag::terminal, term<reference>, 0> result_type;
 
+ BOOST_FORCEINLINE
         result_type operator()(T &t) const
         {
             return result_type::make(t);

Modified: trunk/boost/proto/detail/as_lvalue.hpp
==============================================================================
--- trunk/boost/proto/detail/as_lvalue.hpp (original)
+++ trunk/boost/proto/detail/as_lvalue.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -16,12 +16,14 @@
     namespace detail
     {
         template<typename T>
+ BOOST_FORCEINLINE
         T &as_lvalue(T &t)
         {
             return t;
         }
 
         template<typename T>
+ BOOST_FORCEINLINE
         T const &as_lvalue(T const &t)
         {
             return t;

Modified: trunk/boost/proto/detail/basic_expr.hpp
==============================================================================
--- trunk/boost/proto/detail/basic_expr.hpp (original)
+++ trunk/boost/proto/detail/basic_expr.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -109,6 +109,7 @@
 
         /// \return *this
         ///
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
@@ -116,6 +117,7 @@
 
         /// \overload
         ///
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -126,6 +128,7 @@
         /// arguments.
         ///
         template<typename A0>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 &a0)
         {
             return detail::make_terminal(a0, static_cast<basic_expr *>(0), static_cast<proto_args *>(0));
@@ -134,6 +137,7 @@
         /// \overload
         ///
         template<typename A0>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0)
         {
             return detail::make_terminal(a0, static_cast<basic_expr *>(0), static_cast<proto_args *>(0));
@@ -143,6 +147,7 @@
         /// arguments.
         ///
         template<BOOST_PP_ENUM_PARAMS(ARG_COUNT, typename A)>
+ BOOST_FORCEINLINE
         static basic_expr const make(BOOST_PP_ENUM_BINARY_PARAMS(ARG_COUNT, A, const &a))
         {
             basic_expr that = {BOOST_PP_ENUM_PARAMS(ARG_COUNT, a)};
@@ -163,6 +168,7 @@
         /// \attention Proto overloads <tt>operator&</tt>, which means that
         /// proto-ified objects cannot have their addresses taken, unless we use
         /// the following hack to make \c &x implicitly convertible to \c X*.
+ BOOST_FORCEINLINE
         operator address_of_hack_type_() const
         {
             return boost::addressof(this->child0);

Modified: trunk/boost/proto/detail/dont_care.hpp
==============================================================================
--- trunk/boost/proto/detail/dont_care.hpp (original)
+++ trunk/boost/proto/detail/dont_care.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -9,13 +9,15 @@
 #ifndef BOOST_PROTO_DETAIL_DONT_CARE_HPP_EAN_11_07_2007
 #define BOOST_PROTO_DETAIL_DONT_CARE_HPP_EAN_11_07_2007
 
+#include <boost/config.hpp>
+
 namespace boost { namespace proto
 {
     namespace detail
     {
         struct dont_care
         {
- dont_care(...);
+ BOOST_FORCEINLINE dont_care(...);
         };
     }
 }}

Modified: trunk/boost/proto/detail/expr.hpp
==============================================================================
--- trunk/boost/proto/detail/expr.hpp (original)
+++ trunk/boost/proto/detail/expr.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -140,6 +140,7 @@
 
         /// \return *this
         ///
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
@@ -147,6 +148,7 @@
 
         /// \overload
         ///
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -157,6 +159,7 @@
         /// arguments.
         ///
         template<typename A0>
+ BOOST_FORCEINLINE
         static expr const make(A0 &a0)
         {
             return detail::make_terminal(a0, static_cast<expr *>(0), static_cast<proto_args *>(0));
@@ -165,6 +168,7 @@
         /// \overload
         ///
         template<typename A0>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0)
         {
             return detail::make_terminal(a0, static_cast<expr *>(0), static_cast<proto_args *>(0));
@@ -174,6 +178,7 @@
         /// arguments.
         ///
         template<BOOST_PP_ENUM_PARAMS(ARG_COUNT, typename A)>
+ BOOST_FORCEINLINE
         static expr const make(BOOST_PP_ENUM_BINARY_PARAMS(ARG_COUNT, A, const &a))
         {
             expr that = {BOOST_PP_ENUM_PARAMS(ARG_COUNT, a)};
@@ -194,6 +199,7 @@
         /// \attention Proto overloads <tt>operator&</tt>, which means that
         /// proto-ified objects cannot have their addresses taken, unless we use
         /// the following hack to make \c &x implicitly convertible to \c X*.
+ BOOST_FORCEINLINE
         operator address_of_hack_type_() const
         {
             return boost::addressof(this->child0);
@@ -208,6 +214,7 @@
         ///
         /// \param a The rhs.
         /// \return A new \c expr\<\> node representing an assignment of \c that to \c *this.
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -228,6 +235,7 @@
         /// \param a The rhs.
         /// \return A new \c expr\<\> node representing an assignment of \c a to \c *this.
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -246,6 +254,7 @@
         /// \overload
         ///
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -265,6 +274,7 @@
         /// \overload
         ///
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, typename result_of::as_child<A>::type>
@@ -283,6 +293,7 @@
         /// \overload
         ///
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, typename result_of::as_child<A const>::type>
@@ -304,6 +315,7 @@
         /// \param a The rhs.
         /// \return A new \c expr\<\> node representing \c *this subscripted with \c a.
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -322,6 +334,7 @@
         /// \overload
         ///
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -341,6 +354,7 @@
         /// \overload
         ///
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr &, typename result_of::as_child<A>::type>
@@ -359,6 +373,7 @@
         /// \overload
         ///
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr &, typename result_of::as_child<A const>::type>
@@ -387,6 +402,7 @@
         /// \overload
         ///
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -405,6 +421,7 @@
         /// \overload
         ///
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr(A const &...)
           , expr
@@ -425,6 +442,7 @@
         /// Function call
         ///
         /// \return A new \c expr\<\> node representing the function invocation of \c (*this)().
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -435,6 +453,7 @@
     #ifdef BOOST_PROTO_DEFINE_TERMINAL
         /// \overload
         ///
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr &>, 1> const
         operator ()()
         {

Modified: trunk/boost/proto/detail/expr_funop.hpp
==============================================================================
--- trunk/boost/proto/detail/expr_funop.hpp (original)
+++ trunk/boost/proto/detail/expr_funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -11,6 +11,7 @@
         /// \overload
         ///
         template<BOOST_PP_ENUM_PARAMS(N, typename A)>
+ BOOST_FORCEINLINE
         typename result_of::BOOST_PP_CAT(funop, N)<
             expr const
           , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A)
@@ -27,6 +28,7 @@
         /// \overload
         ///
         template<BOOST_PP_ENUM_PARAMS(N, typename A)>
+ BOOST_FORCEINLINE
         typename result_of::BOOST_PP_CAT(funop, N)<
             expr
           , default_domain BOOST_PP_ENUM_TRAILING_PARAMS(N, const A)

Modified: trunk/boost/proto/detail/funop.hpp
==============================================================================
--- trunk/boost/proto/detail/funop.hpp (original)
+++ trunk/boost/proto/detail/funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -55,6 +55,7 @@
>
>::type type;
 
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             BOOST_PP_ENUM_TRAILING_BINARY_PARAMS(BOOST_PP_ITERATION(), A, &a)

Modified: trunk/boost/proto/detail/generate_by_value.hpp
==============================================================================
--- trunk/boost/proto/detail/generate_by_value.hpp (original)
+++ trunk/boost/proto/detail/generate_by_value.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -50,6 +50,7 @@
         typedef proto::expr<Tag, src_args, N> src_type;
         typedef proto::expr<Tag, dst_args, N> type;
 
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -77,6 +78,7 @@
         typedef proto::basic_expr<Tag, src_args, N> src_type;
         typedef proto::basic_expr<Tag, dst_args, N> type;
 
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {

Modified: trunk/boost/proto/detail/ignore_unused.hpp
==============================================================================
--- trunk/boost/proto/detail/ignore_unused.hpp (original)
+++ trunk/boost/proto/detail/ignore_unused.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -10,12 +10,14 @@
 #ifndef BOOST_PROTO_DETAIL_IGNORE_UNUSED_HPP_EAN_03_03_2008
 #define BOOST_PROTO_DETAIL_IGNORE_UNUSED_HPP_EAN_03_03_2008
 
+#include <boost/config.hpp>
+
 namespace boost { namespace proto
 {
     namespace detail
     {
         template<typename T>
- inline void ignore_unused(T const &)
+ BOOST_FORCEINLINE void ignore_unused(T const &)
         {}
     }
 }}

Modified: trunk/boost/proto/detail/make_expr.hpp
==============================================================================
--- trunk/boost/proto/detail/make_expr.hpp (original)
+++ trunk/boost/proto/detail/make_expr.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -35,6 +35,7 @@
     /// \overload
     ///
     template<typename Tag BOOST_PP_ENUM_TRAILING_PARAMS(N, typename A)>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -54,6 +55,7 @@
     /// \overload
     ///
     template<typename Tag, typename Domain BOOST_PP_ENUM_TRAILING_PARAMS(N, typename C)>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain

Modified: trunk/boost/proto/detail/make_expr_.hpp
==============================================================================
--- trunk/boost/proto/detail/make_expr_.hpp (original)
+++ trunk/boost/proto/detail/make_expr_.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -39,6 +39,7 @@
     {
         typedef typename proto::detail::protoify<A, Domain>::result_type result_type;
 
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A>::type a) const
         {
             return proto::detail::protoify<A, Domain>()(a);
@@ -78,6 +79,7 @@
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
 
+ BOOST_FORCEINLINE
         result_type operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, typename add_reference<A, >::type a)) const
         {
             expr_type const that = {

Modified: trunk/boost/proto/detail/make_expr_funop.hpp
==============================================================================
--- trunk/boost/proto/detail/make_expr_funop.hpp (original)
+++ trunk/boost/proto/detail/make_expr_funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -47,6 +47,7 @@
     /// \overload
     ///
     template<BOOST_PP_ENUM_PARAMS(N, typename A)>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain

Modified: trunk/boost/proto/detail/memfun_funop.hpp
==============================================================================
--- trunk/boost/proto/detail/memfun_funop.hpp (original)
+++ trunk/boost/proto/detail/memfun_funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -33,6 +33,7 @@
     #define N BOOST_PP_ITERATION()
 
     template<BOOST_PP_ENUM_PARAMS(N, typename A)>
+ BOOST_FORCEINLINE
     result_type operator()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, const &a)) const
     {
         BOOST_PROTO_USE_GET_POINTER();

Modified: trunk/boost/proto/detail/preprocessed/basic_expr.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/basic_expr.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/basic_expr.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -51,12 +51,14 @@
         typedef void proto_child1; typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -65,6 +67,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 &a0)
         {
             return detail::make_terminal(a0, static_cast<basic_expr *>(0), static_cast<proto_args *>(0));
@@ -72,6 +75,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0)
         {
             return detail::make_terminal(a0, static_cast<basic_expr *>(0), static_cast<proto_args *>(0));
@@ -125,12 +129,14 @@
         typedef void proto_child1; typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -139,6 +145,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0)
         {
             basic_expr that = {a0};
@@ -155,6 +162,7 @@
         
         
         
+ BOOST_FORCEINLINE
         operator address_of_hack_type_() const
         {
             return boost::addressof(this->child0);
@@ -205,12 +213,14 @@
         typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -219,6 +229,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0 , A1 const &a1)
         {
             basic_expr that = {a0 , a1};
@@ -273,12 +284,14 @@
         typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -287,6 +300,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2)
         {
             basic_expr that = {a0 , a1 , a2};
@@ -341,12 +355,14 @@
         typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -355,6 +371,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3)
         {
             basic_expr that = {a0 , a1 , a2 , a3};
@@ -409,12 +426,14 @@
         typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -423,6 +442,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4)
         {
             basic_expr that = {a0 , a1 , a2 , a3 , a4};
@@ -477,12 +497,14 @@
         typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -491,6 +513,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5)
         {
             basic_expr that = {a0 , a1 , a2 , a3 , a4 , a5};
@@ -545,12 +568,14 @@
         typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -559,6 +584,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6)
         {
             basic_expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6};
@@ -613,12 +639,14 @@
         typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -627,6 +655,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7)
         {
             basic_expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
@@ -681,12 +710,14 @@
         typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -695,6 +726,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8)
         {
             basic_expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
@@ -749,12 +781,14 @@
         
         
         
+ BOOST_FORCEINLINE
         basic_expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         basic_expr &proto_base()
         {
             return *this;
@@ -763,6 +797,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
         static basic_expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8 , A9 const &a9)
         {
             basic_expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};

Modified: trunk/boost/proto/detail/preprocessed/expr.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/expr.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/expr.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -51,12 +51,14 @@
         typedef void proto_child1; typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -65,6 +67,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         static expr const make(A0 &a0)
         {
             return detail::make_terminal(a0, static_cast<expr *>(0), static_cast<proto_args *>(0));
@@ -72,6 +75,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0)
         {
             return detail::make_terminal(a0, static_cast<expr *>(0), static_cast<proto_args *>(0));
@@ -83,6 +87,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -102,6 +107,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -119,6 +125,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -136,6 +143,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, typename result_of::as_child<A>::type>
@@ -153,6 +161,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, typename result_of::as_child<A const>::type>
@@ -172,6 +181,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -189,6 +199,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -206,6 +217,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr &, typename result_of::as_child<A>::type>
@@ -223,6 +235,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr &, typename result_of::as_child<A const>::type>
@@ -247,6 +260,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -255,6 +269,7 @@
         }
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr &>, 1> const
         operator ()()
         {
@@ -264,6 +279,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -278,6 +294,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr
           , default_domain , const A0
@@ -292,6 +309,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -306,6 +324,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr
           , default_domain , const A0 , const A1
@@ -320,6 +339,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -334,6 +354,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr
           , default_domain , const A0 , const A1 , const A2
@@ -348,6 +369,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -362,6 +384,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -376,6 +399,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -390,6 +414,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -404,6 +429,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -418,6 +444,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -432,6 +459,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -446,6 +474,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -460,6 +489,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -474,6 +504,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -488,6 +519,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -502,6 +534,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -559,12 +592,14 @@
         typedef void proto_child1; typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -573,6 +608,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0)
         {
             expr that = {a0};
@@ -589,6 +625,7 @@
         
         
         
+ BOOST_FORCEINLINE
         operator address_of_hack_type_() const
         {
             return boost::addressof(this->child0);
@@ -597,6 +634,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -616,6 +654,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -633,6 +672,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -652,6 +692,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -669,6 +710,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -693,6 +735,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -702,6 +745,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -716,6 +760,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -730,6 +775,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -744,6 +790,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -758,6 +805,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -772,6 +820,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -786,6 +835,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -800,6 +850,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -814,6 +865,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -871,12 +923,14 @@
         typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -885,6 +939,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1)
         {
             expr that = {a0 , a1};
@@ -897,6 +952,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -916,6 +972,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -933,6 +990,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -952,6 +1010,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -969,6 +1028,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -993,6 +1053,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -1002,6 +1063,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -1016,6 +1078,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -1030,6 +1093,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -1044,6 +1108,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -1058,6 +1123,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -1072,6 +1138,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -1086,6 +1153,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -1100,6 +1168,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -1114,6 +1183,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -1171,12 +1241,14 @@
         typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -1185,6 +1257,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2)
         {
             expr that = {a0 , a1 , a2};
@@ -1197,6 +1270,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -1216,6 +1290,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1233,6 +1308,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1252,6 +1328,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1269,6 +1346,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1293,6 +1371,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -1302,6 +1381,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -1316,6 +1396,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -1330,6 +1411,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -1344,6 +1426,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -1358,6 +1441,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -1372,6 +1456,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -1386,6 +1471,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -1400,6 +1486,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -1414,6 +1501,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -1471,12 +1559,14 @@
         typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -1485,6 +1575,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3)
         {
             expr that = {a0 , a1 , a2 , a3};
@@ -1497,6 +1588,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -1516,6 +1608,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1533,6 +1626,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1552,6 +1646,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1569,6 +1664,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1593,6 +1689,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -1602,6 +1699,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -1616,6 +1714,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -1630,6 +1729,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -1644,6 +1744,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -1658,6 +1759,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -1672,6 +1774,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -1686,6 +1789,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -1700,6 +1804,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -1714,6 +1819,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -1771,12 +1877,14 @@
         typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -1785,6 +1893,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4)
         {
             expr that = {a0 , a1 , a2 , a3 , a4};
@@ -1797,6 +1906,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -1816,6 +1926,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1833,6 +1944,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1852,6 +1964,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1869,6 +1982,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1893,6 +2007,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -1902,6 +2017,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -1916,6 +2032,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -1930,6 +2047,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -1944,6 +2062,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -1958,6 +2077,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -1972,6 +2092,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -1986,6 +2107,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -2000,6 +2122,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -2014,6 +2137,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -2071,12 +2195,14 @@
         typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -2085,6 +2211,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5)
         {
             expr that = {a0 , a1 , a2 , a3 , a4 , a5};
@@ -2097,6 +2224,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -2116,6 +2244,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -2133,6 +2262,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -2152,6 +2282,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -2169,6 +2300,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -2193,6 +2325,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -2202,6 +2335,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -2216,6 +2350,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -2230,6 +2365,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -2244,6 +2380,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -2258,6 +2395,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -2272,6 +2410,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -2286,6 +2425,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -2300,6 +2440,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -2314,6 +2455,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -2371,12 +2513,14 @@
         typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -2385,6 +2529,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6)
         {
             expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6};
@@ -2397,6 +2542,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -2416,6 +2562,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -2433,6 +2580,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -2452,6 +2600,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -2469,6 +2618,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -2493,6 +2643,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -2502,6 +2653,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -2516,6 +2668,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -2530,6 +2683,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -2544,6 +2698,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -2558,6 +2713,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -2572,6 +2728,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -2586,6 +2743,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -2600,6 +2758,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -2614,6 +2773,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -2671,12 +2831,14 @@
         typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -2685,6 +2847,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7)
         {
             expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
@@ -2697,6 +2860,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -2716,6 +2880,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -2733,6 +2898,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -2752,6 +2918,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -2769,6 +2936,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -2793,6 +2961,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -2802,6 +2971,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -2816,6 +2986,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -2830,6 +3001,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -2844,6 +3016,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -2858,6 +3031,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -2872,6 +3046,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -2886,6 +3061,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -2900,6 +3076,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -2914,6 +3091,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -2971,12 +3149,14 @@
         typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -2985,6 +3165,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8)
         {
             expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
@@ -2997,6 +3178,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -3016,6 +3198,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -3033,6 +3216,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -3052,6 +3236,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -3069,6 +3254,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -3093,6 +3279,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -3102,6 +3289,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -3116,6 +3304,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -3130,6 +3319,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -3144,6 +3334,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -3158,6 +3349,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -3172,6 +3364,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -3186,6 +3379,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -3200,6 +3394,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -3214,6 +3409,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8
@@ -3271,12 +3467,14 @@
         
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -3285,6 +3483,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8 , A9 const &a9)
         {
             expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
@@ -3297,6 +3496,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -3316,6 +3516,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -3333,6 +3534,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -3352,6 +3554,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -3369,6 +3572,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -3393,6 +3597,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<proto::tag::function, list1<expr const &>, 1> const
         operator ()() const
         {
@@ -3402,6 +3607,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         typename result_of::funop1<
             expr const
           , default_domain , const A0
@@ -3416,6 +3622,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         typename result_of::funop2<
             expr const
           , default_domain , const A0 , const A1
@@ -3430,6 +3637,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         typename result_of::funop3<
             expr const
           , default_domain , const A0 , const A1 , const A2
@@ -3444,6 +3652,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         typename result_of::funop4<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3
@@ -3458,6 +3667,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         typename result_of::funop5<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4
@@ -3472,6 +3682,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         typename result_of::funop6<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5
@@ -3486,6 +3697,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         typename result_of::funop7<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6
@@ -3500,6 +3712,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         typename result_of::funop8<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7
@@ -3514,6 +3727,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         typename result_of::funop9<
             expr const
           , default_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8

Modified: trunk/boost/proto/detail/preprocessed/expr_variadic.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/expr_variadic.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/expr_variadic.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -51,12 +51,14 @@
         typedef void proto_child1; typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -65,6 +67,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         static expr const make(A0 &a0)
         {
             return detail::make_terminal(a0, static_cast<expr *>(0), static_cast<proto_args *>(0));
@@ -72,6 +75,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0)
         {
             return detail::make_terminal(a0, static_cast<expr *>(0), static_cast<proto_args *>(0));
@@ -83,6 +87,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -102,6 +107,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -119,6 +125,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -136,6 +143,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, typename result_of::as_child<A>::type>
@@ -153,6 +161,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, typename result_of::as_child<A const>::type>
@@ -172,6 +181,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -189,6 +199,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -206,6 +217,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr &, typename result_of::as_child<A>::type>
@@ -223,6 +235,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr &, typename result_of::as_child<A const>::type>
@@ -247,6 +260,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -263,6 +277,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr(A const &...)
           , expr
@@ -322,12 +337,14 @@
         typedef void proto_child1; typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -336,6 +353,7 @@
         
         
         template<typename A0>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0)
         {
             expr that = {a0};
@@ -352,6 +370,7 @@
         
         
         
+ BOOST_FORCEINLINE
         operator address_of_hack_type_() const
         {
             return boost::addressof(this->child0);
@@ -360,6 +379,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -379,6 +399,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -396,6 +417,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -415,6 +437,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -432,6 +455,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -456,6 +480,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -515,12 +540,14 @@
         typedef void proto_child2; typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -529,6 +556,7 @@
         
         
         template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1)
         {
             expr that = {a0 , a1};
@@ -541,6 +569,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -560,6 +589,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -577,6 +607,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -596,6 +627,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -613,6 +645,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -637,6 +670,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -696,12 +730,14 @@
         typedef void proto_child3; typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -710,6 +746,7 @@
         
         
         template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2)
         {
             expr that = {a0 , a1 , a2};
@@ -722,6 +759,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -741,6 +779,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -758,6 +797,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -777,6 +817,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -794,6 +835,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -818,6 +860,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -877,12 +920,14 @@
         typedef void proto_child4; typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -891,6 +936,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3)
         {
             expr that = {a0 , a1 , a2 , a3};
@@ -903,6 +949,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -922,6 +969,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -939,6 +987,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -958,6 +1007,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -975,6 +1025,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -999,6 +1050,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -1058,12 +1110,14 @@
         typedef void proto_child5; typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -1072,6 +1126,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4)
         {
             expr that = {a0 , a1 , a2 , a3 , a4};
@@ -1084,6 +1139,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -1103,6 +1159,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1120,6 +1177,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1139,6 +1197,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1156,6 +1215,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1180,6 +1240,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -1239,12 +1300,14 @@
         typedef void proto_child6; typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -1253,6 +1316,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5)
         {
             expr that = {a0 , a1 , a2 , a3 , a4 , a5};
@@ -1265,6 +1329,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -1284,6 +1349,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1301,6 +1367,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1320,6 +1387,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1337,6 +1405,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1361,6 +1430,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -1420,12 +1490,14 @@
         typedef void proto_child7; typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -1434,6 +1506,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6)
         {
             expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6};
@@ -1446,6 +1519,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -1465,6 +1539,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1482,6 +1557,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1501,6 +1577,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1518,6 +1595,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1542,6 +1620,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -1601,12 +1680,14 @@
         typedef void proto_child8; typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -1615,6 +1696,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7)
         {
             expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
@@ -1627,6 +1709,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -1646,6 +1729,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1663,6 +1747,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1682,6 +1767,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1699,6 +1785,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1723,6 +1810,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -1782,12 +1870,14 @@
         typedef void proto_child9;
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -1796,6 +1886,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8)
         {
             expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
@@ -1808,6 +1899,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -1827,6 +1919,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1844,6 +1937,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1863,6 +1957,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -1880,6 +1975,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -1904,6 +2000,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr
@@ -1963,12 +2060,14 @@
         
         
         
+ BOOST_FORCEINLINE
         expr const &proto_base() const
         {
             return *this;
         }
         
         
+ BOOST_FORCEINLINE
         expr &proto_base()
         {
             return *this;
@@ -1977,6 +2076,7 @@
         
         
         template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
         static expr const make(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8 , A9 const &a9)
         {
             expr that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};
@@ -1989,6 +2089,7 @@
         
         
         
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr &, expr const &>
@@ -2008,6 +2109,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -2025,6 +2127,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::assign
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -2044,6 +2147,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A>::type>
@@ -2061,6 +2165,7 @@
         
         
         template<typename A>
+ BOOST_FORCEINLINE
         proto::expr<
             proto::tag::subscript
           , list2<expr const &, typename result_of::as_child<A const>::type>
@@ -2085,6 +2190,7 @@
         
         
         template<typename ...A>
+ BOOST_FORCEINLINE
         typename result_of::funop<
             expr const(A const &...)
           , expr

Modified: trunk/boost/proto/detail/preprocessed/extends_funop.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/extends_funop.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/extends_funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -6,13 +6,13 @@
     // Software License, Version 1.0. (See accompanying file
     // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     template<typename Sig> struct result { typedef typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop< Sig , proto_derived_expr , proto_domain >::type ) >::type const type; };
- typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop0< proto_derived_expr const , proto_domain >::type ) >::type const operator ()() const { typedef boost::proto::result_of::funop0< proto_derived_expr const , proto_domain > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) ) ); } typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop0< proto_derived_expr , proto_domain >::type ) >::type const operator ()() { typedef boost::proto::result_of::funop0< proto_derived_expr , proto_domain > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) ) ); }
- template<typename A0> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop1< proto_derived_expr const , proto_domain , const A0 >::type ) >::type const operator ()(A0 const &a0) const { typedef boost::proto::result_of::funop1< proto_derived_expr const , proto_domain , const A0 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 ) ); } template<typename A0> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop1< proto_derived_expr , proto_domain , const A0 >::type ) >::type const operator ()(A0 const &a0) { typedef boost::proto::result_of::funop1< proto_derived_expr , proto_domain , const A0 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 ) ); }
- template<typename A0 , typename A1> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop2< proto_derived_expr const , proto_domain , const A0 , const A1 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1) const { typedef boost::proto::result_of::funop2< proto_derived_expr const , proto_domain , const A0 , const A1 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 ) ); } template<typename A0 , typename A1> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop2< proto_derived_expr , proto_domain , const A0 , const A1 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1) { typedef boost::proto::result_of::funop2< proto_derived_expr , proto_domain , const A0 , const A1 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 ) ); }
- template<typename A0 , typename A1 , typename A2> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop3< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2) const { typedef boost::proto::result_of::funop3< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 ) ); } template<typename A0 , typename A1 , typename A2> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop3< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2) { typedef boost::proto::result_of::funop3< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(
this) , a0 , a1 , a2 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop4< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3) const { typedef boost::proto::result_of::funop4< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop4< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3) { typedef boost::proto::result_of::funop4< proto_derived_expr , proto_domain , const A0 , const A
1 , const A2 , const A3 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop5< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4) const { typedef boost::proto::result_of::funop5< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop5< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4) {
 typedef boost::proto::result_of::funop5< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 , a4 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop6< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5) const { typedef boost::proto::result_of::funop6< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop6< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 >::type ) >::type const operat
or ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5) { typedef boost::proto::result_of::funop6< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 , a4 , a5 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop7< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6) const { typedef boost::proto::result_of::funop7< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop7< proto_derived_expr , proto_domain , const A0 , const A1 , co
nst A2 , const A3 , const A4 , const A5 , const A6 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6) { typedef boost::proto::result_of::funop7< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop8< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7) const { typedef boost::proto::result_of::funop8< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of
::funop8< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7) { typedef boost::proto::result_of::funop8< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop9< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8) const { typedef boost::proto::result_of::funop9< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8> typename BO
OST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop9< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8) { typedef boost::proto::result_of::funop9< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 ) ); }
+ BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop0< proto_derived_expr const , proto_domain >::type ) >::type const operator ()() const { typedef boost::proto::result_of::funop0< proto_derived_expr const , proto_domain > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) ) ); } BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop0< proto_derived_expr , proto_domain >::type ) >::type const operator ()() { typedef boost::proto::result_of::funop0< proto_derived_expr , proto_domain > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) ) ); }
+ template<typename A0> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop1< proto_derived_expr const , proto_domain , const A0 >::type ) >::type const operator ()(A0 const &a0) const { typedef boost::proto::result_of::funop1< proto_derived_expr const , proto_domain , const A0 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 ) ); } template<typename A0> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop1< proto_derived_expr , proto_domain , const A0 >::type ) >::type const operator ()(A0 const &a0) { typedef boost::proto::result_of::funop1< proto_derived_expr , proto_domain , const A0 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 ) ); }
+ template<typename A0 , typename A1> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop2< proto_derived_expr const , proto_domain , const A0 , const A1 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1) const { typedef boost::proto::result_of::funop2< proto_derived_expr const , proto_domain , const A0 , const A1 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 ) ); } template<typename A0 , typename A1> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop2< proto_derived_expr , proto_domain , const A0 , const A1 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1) { typedef boost::proto::result_of::funop2< proto_derived_expr , proto_domain , const A0 , const A1 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 ) ); }
+ template<typename A0 , typename A1 , typename A2> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop3< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2) const { typedef boost::proto::result_of::funop3< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 ) ); } template<typename A0 , typename A1 , typename A2> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop3< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2) { typedef boost::proto::result_of::funop3< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 > funop; return proto_generator()( funop::call(
 *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop4< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3) const { typedef boost::proto::result_of::funop4< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop4< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3) { typedef boost::proto::result_of::funop4< proto_derived_expr
 , proto_domain , const A0 , const A1 , const A2 , const A3 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop5< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4) const { typedef boost::proto::result_of::funop5< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop5< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const
&a2 , A3 const &a3 , A4 const &a4) { typedef boost::proto::result_of::funop5< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 , a4 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop6< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5) const { typedef boost::proto::result_of::funop6< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop6< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , con
st A5 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5) { typedef boost::proto::result_of::funop6< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 , a4 , a5 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop7< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6) const { typedef boost::proto::result_of::funop7< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop7< proto_derived_expr , pro
to_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6) { typedef boost::proto::result_of::funop7< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop8< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7) const { typedef boost::proto::result_of::funop8< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generat
or( typename boost::proto::result_of::funop8< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7) { typedef boost::proto::result_of::funop8< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop9< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8) const { typedef boost::proto::result_of::funop9< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 ) ); } template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typena
me A8> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop9< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8) { typedef boost::proto::result_of::funop9< proto_derived_expr , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 ) ); }

Modified: trunk/boost/proto/detail/preprocessed/extends_funop_const.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/extends_funop_const.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/extends_funop_const.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -6,13 +6,13 @@
     // Software License, Version 1.0. (See accompanying file
     // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     template<typename Sig> struct result { typedef typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop< Sig , proto_derived_expr , proto_domain >::type ) >::type const type; };
- typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop0< proto_derived_expr const , proto_domain >::type ) >::type const operator ()() const { typedef boost::proto::result_of::funop0< proto_derived_expr const , proto_domain > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) ) ); }
- template<typename A0> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop1< proto_derived_expr const , proto_domain , const A0 >::type ) >::type const operator ()(A0 const &a0) const { typedef boost::proto::result_of::funop1< proto_derived_expr const , proto_domain , const A0 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 ) ); }
- template<typename A0 , typename A1> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop2< proto_derived_expr const , proto_domain , const A0 , const A1 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1) const { typedef boost::proto::result_of::funop2< proto_derived_expr const , proto_domain , const A0 , const A1 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 ) ); }
- template<typename A0 , typename A1 , typename A2> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop3< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2) const { typedef boost::proto::result_of::funop3< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop4< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3) const { typedef boost::proto::result_of::funop4< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop5< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4) const { typedef boost::proto::result_of::funop5< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop6< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5) const { typedef boost::proto::result_of::funop6< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop7< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6) const { typedef boost::proto::result_of::funop7< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop8< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7) const { typedef boost::proto::result_of::funop8< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 ) ); }
- template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8> typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop9< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8) const { typedef boost::proto::result_of::funop9< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 ) ); }
+ BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop0< proto_derived_expr const , proto_domain >::type ) >::type const operator ()() const { typedef boost::proto::result_of::funop0< proto_derived_expr const , proto_domain > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) ) ); }
+ template<typename A0> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop1< proto_derived_expr const , proto_domain , const A0 >::type ) >::type const operator ()(A0 const &a0) const { typedef boost::proto::result_of::funop1< proto_derived_expr const , proto_domain , const A0 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 ) ); }
+ template<typename A0 , typename A1> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop2< proto_derived_expr const , proto_domain , const A0 , const A1 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1) const { typedef boost::proto::result_of::funop2< proto_derived_expr const , proto_domain , const A0 , const A1 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 ) ); }
+ template<typename A0 , typename A1 , typename A2> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop3< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2) const { typedef boost::proto::result_of::funop3< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop4< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3) const { typedef boost::proto::result_of::funop4< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop5< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4) const { typedef boost::proto::result_of::funop5< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop6< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5) const { typedef boost::proto::result_of::funop6< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop7< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6) const { typedef boost::proto::result_of::funop7< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop8< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7) const { typedef boost::proto::result_of::funop8< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 ) ); }
+ template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8> BOOST_FORCEINLINE typename BOOST_PROTO_RESULT_OF< proto_generator( typename boost::proto::result_of::funop9< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 >::type ) >::type const operator ()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8) const { typedef boost::proto::result_of::funop9< proto_derived_expr const , proto_domain , const A0 , const A1 , const A2 , const A3 , const A4 , const A5 , const A6 , const A7 , const A8 > funop; return proto_generator()( funop::call( *static_cast<proto_derived_expr const *>(this) , a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 ) ); }

Modified: trunk/boost/proto/detail/preprocessed/funop.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/funop.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -18,6 +18,7 @@
                 
>
>::type type;
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             
@@ -53,6 +54,7 @@
                 , typename proto::result_of::as_child<A0, Domain>::type
>
>::type type;
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             , A0 &a0
@@ -88,6 +90,7 @@
                 , typename proto::result_of::as_child<A0, Domain>::type , typename proto::result_of::as_child<A1, Domain>::type
>
>::type type;
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             , A0 &a0 , A1 &a1
@@ -123,6 +126,7 @@
                 , typename proto::result_of::as_child<A0, Domain>::type , typename proto::result_of::as_child<A1, Domain>::type , typename proto::result_of::as_child<A2, Domain>::type
>
>::type type;
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             , A0 &a0 , A1 &a1 , A2 &a2
@@ -158,6 +162,7 @@
                 , typename proto::result_of::as_child<A0, Domain>::type , typename proto::result_of::as_child<A1, Domain>::type , typename proto::result_of::as_child<A2, Domain>::type , typename proto::result_of::as_child<A3, Domain>::type
>
>::type type;
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             , A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3
@@ -193,6 +198,7 @@
                 , typename proto::result_of::as_child<A0, Domain>::type , typename proto::result_of::as_child<A1, Domain>::type , typename proto::result_of::as_child<A2, Domain>::type , typename proto::result_of::as_child<A3, Domain>::type , typename proto::result_of::as_child<A4, Domain>::type
>
>::type type;
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             , A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4
@@ -228,6 +234,7 @@
                 , typename proto::result_of::as_child<A0, Domain>::type , typename proto::result_of::as_child<A1, Domain>::type , typename proto::result_of::as_child<A2, Domain>::type , typename proto::result_of::as_child<A3, Domain>::type , typename proto::result_of::as_child<A4, Domain>::type , typename proto::result_of::as_child<A5, Domain>::type
>
>::type type;
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             , A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5
@@ -263,6 +270,7 @@
                 , typename proto::result_of::as_child<A0, Domain>::type , typename proto::result_of::as_child<A1, Domain>::type , typename proto::result_of::as_child<A2, Domain>::type , typename proto::result_of::as_child<A3, Domain>::type , typename proto::result_of::as_child<A4, Domain>::type , typename proto::result_of::as_child<A5, Domain>::type , typename proto::result_of::as_child<A6, Domain>::type
>
>::type type;
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             , A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6
@@ -298,6 +306,7 @@
                 , typename proto::result_of::as_child<A0, Domain>::type , typename proto::result_of::as_child<A1, Domain>::type , typename proto::result_of::as_child<A2, Domain>::type , typename proto::result_of::as_child<A3, Domain>::type , typename proto::result_of::as_child<A4, Domain>::type , typename proto::result_of::as_child<A5, Domain>::type , typename proto::result_of::as_child<A6, Domain>::type , typename proto::result_of::as_child<A7, Domain>::type
>
>::type type;
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             , A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7
@@ -333,6 +342,7 @@
                 , typename proto::result_of::as_child<A0, Domain>::type , typename proto::result_of::as_child<A1, Domain>::type , typename proto::result_of::as_child<A2, Domain>::type , typename proto::result_of::as_child<A3, Domain>::type , typename proto::result_of::as_child<A4, Domain>::type , typename proto::result_of::as_child<A5, Domain>::type , typename proto::result_of::as_child<A6, Domain>::type , typename proto::result_of::as_child<A7, Domain>::type , typename proto::result_of::as_child<A8, Domain>::type
>
>::type type;
+ BOOST_FORCEINLINE
         static type const call(
             Expr &e
             , A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8

Modified: trunk/boost/proto/detail/preprocessed/generate_by_value.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/generate_by_value.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/generate_by_value.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -20,6 +20,7 @@
         dst_args;
         typedef proto::expr<Tag, src_args, 1> src_type;
         typedef proto::expr<Tag, dst_args, 1> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -43,6 +44,7 @@
         dst_args;
         typedef proto::basic_expr<Tag, src_args, 1> src_type;
         typedef proto::basic_expr<Tag, dst_args, 1> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -66,6 +68,7 @@
         dst_args;
         typedef proto::expr<Tag, src_args, 2> src_type;
         typedef proto::expr<Tag, dst_args, 2> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -89,6 +92,7 @@
         dst_args;
         typedef proto::basic_expr<Tag, src_args, 2> src_type;
         typedef proto::basic_expr<Tag, dst_args, 2> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -112,6 +116,7 @@
         dst_args;
         typedef proto::expr<Tag, src_args, 3> src_type;
         typedef proto::expr<Tag, dst_args, 3> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -135,6 +140,7 @@
         dst_args;
         typedef proto::basic_expr<Tag, src_args, 3> src_type;
         typedef proto::basic_expr<Tag, dst_args, 3> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -158,6 +164,7 @@
         dst_args;
         typedef proto::expr<Tag, src_args, 4> src_type;
         typedef proto::expr<Tag, dst_args, 4> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -181,6 +188,7 @@
         dst_args;
         typedef proto::basic_expr<Tag, src_args, 4> src_type;
         typedef proto::basic_expr<Tag, dst_args, 4> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -204,6 +212,7 @@
         dst_args;
         typedef proto::expr<Tag, src_args, 5> src_type;
         typedef proto::expr<Tag, dst_args, 5> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -227,6 +236,7 @@
         dst_args;
         typedef proto::basic_expr<Tag, src_args, 5> src_type;
         typedef proto::basic_expr<Tag, dst_args, 5> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -250,6 +260,7 @@
         dst_args;
         typedef proto::expr<Tag, src_args, 6> src_type;
         typedef proto::expr<Tag, dst_args, 6> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -273,6 +284,7 @@
         dst_args;
         typedef proto::basic_expr<Tag, src_args, 6> src_type;
         typedef proto::basic_expr<Tag, dst_args, 6> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -296,6 +308,7 @@
         dst_args;
         typedef proto::expr<Tag, src_args, 7> src_type;
         typedef proto::expr<Tag, dst_args, 7> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -319,6 +332,7 @@
         dst_args;
         typedef proto::basic_expr<Tag, src_args, 7> src_type;
         typedef proto::basic_expr<Tag, dst_args, 7> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -342,6 +356,7 @@
         dst_args;
         typedef proto::expr<Tag, src_args, 8> src_type;
         typedef proto::expr<Tag, dst_args, 8> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -365,6 +380,7 @@
         dst_args;
         typedef proto::basic_expr<Tag, src_args, 8> src_type;
         typedef proto::basic_expr<Tag, dst_args, 8> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -388,6 +404,7 @@
         dst_args;
         typedef proto::expr<Tag, src_args, 9> src_type;
         typedef proto::expr<Tag, dst_args, 9> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -411,6 +428,7 @@
         dst_args;
         typedef proto::basic_expr<Tag, src_args, 9> src_type;
         typedef proto::basic_expr<Tag, dst_args, 9> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -434,6 +452,7 @@
         dst_args;
         typedef proto::expr<Tag, src_args, 10> src_type;
         typedef proto::expr<Tag, dst_args, 10> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {
@@ -457,6 +476,7 @@
         dst_args;
         typedef proto::basic_expr<Tag, src_args, 10> src_type;
         typedef proto::basic_expr<Tag, dst_args, 10> type;
+ BOOST_FORCEINLINE
         static type const call(src_type const &e)
         {
             type that = {

Modified: trunk/boost/proto/detail/preprocessed/make_expr.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/make_expr.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/make_expr.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -8,6 +8,7 @@
     
     
     template<typename Tag , typename A0 , typename A1>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -26,6 +27,7 @@
     
     
     template<typename Tag, typename Domain , typename C0 , typename C1>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -42,6 +44,7 @@
     
     
     template<typename Tag , typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -60,6 +63,7 @@
     
     
     template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -76,6 +80,7 @@
     
     
     template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -94,6 +99,7 @@
     
     
     template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -110,6 +116,7 @@
     
     
     template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -128,6 +135,7 @@
     
     
     template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -144,6 +152,7 @@
     
     
     template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -162,6 +171,7 @@
     
     
     template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4 , typename C5>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -178,6 +188,7 @@
     
     
     template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -196,6 +207,7 @@
     
     
     template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4 , typename C5 , typename C6>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -212,6 +224,7 @@
     
     
     template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -230,6 +243,7 @@
     
     
     template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4 , typename C5 , typename C6 , typename C7>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -246,6 +260,7 @@
     
     
     template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -264,6 +279,7 @@
     
     
     template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4 , typename C5 , typename C6 , typename C7 , typename C8>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -280,6 +296,7 @@
     
     
     template<typename Tag , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -298,6 +315,7 @@
     
     
     template<typename Tag, typename Domain , typename C0 , typename C1 , typename C2 , typename C3 , typename C4 , typename C5 , typename C6 , typename C7 , typename C8 , typename C9>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain

Modified: trunk/boost/proto/detail/preprocessed/make_expr_.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/make_expr_.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/make_expr_.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -18,6 +18,7 @@
         , void , void , void , void , void , void , void , void , void , void>
     {
         typedef typename proto::detail::protoify<A, Domain>::result_type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A>::type a) const
         {
             return proto::detail::protoify<A, Domain>()(a);
@@ -40,6 +41,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A0 >::type a0) const
         {
             expr_type const that = {
@@ -69,6 +71,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A0 >::type a0 , typename add_reference<A1 >::type a1) const
         {
             expr_type const that = {
@@ -98,6 +101,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A0 >::type a0 , typename add_reference<A1 >::type a1 , typename add_reference<A2 >::type a2) const
         {
             expr_type const that = {
@@ -127,6 +131,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A0 >::type a0 , typename add_reference<A1 >::type a1 , typename add_reference<A2 >::type a2 , typename add_reference<A3 >::type a3) const
         {
             expr_type const that = {
@@ -156,6 +161,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A0 >::type a0 , typename add_reference<A1 >::type a1 , typename add_reference<A2 >::type a2 , typename add_reference<A3 >::type a3 , typename add_reference<A4 >::type a4) const
         {
             expr_type const that = {
@@ -185,6 +191,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A0 >::type a0 , typename add_reference<A1 >::type a1 , typename add_reference<A2 >::type a2 , typename add_reference<A3 >::type a3 , typename add_reference<A4 >::type a4 , typename add_reference<A5 >::type a5) const
         {
             expr_type const that = {
@@ -214,6 +221,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A0 >::type a0 , typename add_reference<A1 >::type a1 , typename add_reference<A2 >::type a2 , typename add_reference<A3 >::type a3 , typename add_reference<A4 >::type a4 , typename add_reference<A5 >::type a5 , typename add_reference<A6 >::type a6) const
         {
             expr_type const that = {
@@ -243,6 +251,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A0 >::type a0 , typename add_reference<A1 >::type a1 , typename add_reference<A2 >::type a2 , typename add_reference<A3 >::type a3 , typename add_reference<A4 >::type a4 , typename add_reference<A5 >::type a5 , typename add_reference<A6 >::type a6 , typename add_reference<A7 >::type a7) const
         {
             expr_type const that = {
@@ -272,6 +281,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A0 >::type a0 , typename add_reference<A1 >::type a1 , typename add_reference<A2 >::type a2 , typename add_reference<A3 >::type a3 , typename add_reference<A4 >::type a4 , typename add_reference<A5 >::type a5 , typename add_reference<A6 >::type a6 , typename add_reference<A7 >::type a7 , typename add_reference<A8 >::type a8) const
         {
             expr_type const that = {
@@ -301,6 +311,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type result_type;
+ BOOST_FORCEINLINE
         result_type operator()(typename add_reference<A0 >::type a0 , typename add_reference<A1 >::type a1 , typename add_reference<A2 >::type a2 , typename add_reference<A3 >::type a3 , typename add_reference<A4 >::type a4 , typename add_reference<A5 >::type a5 , typename add_reference<A6 >::type a6 , typename add_reference<A7 >::type a7 , typename add_reference<A8 >::type a8 , typename add_reference<A9 >::type a9) const
         {
             expr_type const that = {

Modified: trunk/boost/proto/detail/preprocessed/make_expr_funop.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/make_expr_funop.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/make_expr_funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -19,6 +19,7 @@
     
     
     template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -46,6 +47,7 @@
     
     
     template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -73,6 +75,7 @@
     
     
     template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -100,6 +103,7 @@
     
     
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -127,6 +131,7 @@
     
     
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -154,6 +159,7 @@
     
     
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -181,6 +187,7 @@
     
     
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -208,6 +215,7 @@
     
     
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -235,6 +243,7 @@
     
     
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain

Modified: trunk/boost/proto/detail/preprocessed/memfun_funop.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/memfun_funop.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/memfun_funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -6,60 +6,70 @@
     // Software License, Version 1.0. (See accompanying file
     // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     template<typename A0>
+ BOOST_FORCEINLINE
     result_type operator()(A0 const &a0) const
     {
         BOOST_PROTO_USE_GET_POINTER();
         return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0);
     }
     template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
     result_type operator()(A0 const &a0 , A1 const &a1) const
     {
         BOOST_PROTO_USE_GET_POINTER();
         return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1);
     }
     template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
     result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2) const
     {
         BOOST_PROTO_USE_GET_POINTER();
         return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
     result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3) const
     {
         BOOST_PROTO_USE_GET_POINTER();
         return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
     result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4) const
     {
         BOOST_PROTO_USE_GET_POINTER();
         return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
     result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5) const
     {
         BOOST_PROTO_USE_GET_POINTER();
         return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4 , a5);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
     result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6) const
     {
         BOOST_PROTO_USE_GET_POINTER();
         return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4 , a5 , a6);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
     result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7) const
     {
         BOOST_PROTO_USE_GET_POINTER();
         return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
     result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8) const
     {
         BOOST_PROTO_USE_GET_POINTER();
         return (BOOST_PROTO_GET_POINTER(V, obj) ->* pmf)(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
     result_type operator()(A0 const &a0 , A1 const &a1 , A2 const &a2 , A3 const &a3 , A4 const &a4 , A5 const &a5 , A6 const &a6 , A7 const &a7 , A8 const &a8 , A9 const &a9) const
     {
         BOOST_PROTO_USE_GET_POINTER();

Modified: trunk/boost/proto/detail/preprocessed/traits.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/traits.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/traits.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -44,6 +44,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child0>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child0;
@@ -65,6 +66,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child0>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child0;
@@ -184,6 +186,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child1>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child1;
@@ -205,6 +208,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child1>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child1;
@@ -324,6 +328,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child2>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child2;
@@ -345,6 +350,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child2>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child2;
@@ -464,6 +470,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child3>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child3;
@@ -485,6 +492,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child3>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child3;
@@ -604,6 +612,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child4>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child4;
@@ -625,6 +634,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child4>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child4;
@@ -744,6 +754,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child5>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child5;
@@ -765,6 +776,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child5>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child5;
@@ -884,6 +896,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child6>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child6;
@@ -905,6 +918,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child6>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child6;
@@ -1024,6 +1038,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child7>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child7;
@@ -1045,6 +1060,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child7>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child7;
@@ -1164,6 +1180,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child8>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child8;
@@ -1185,6 +1202,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child8>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child8;
@@ -1304,6 +1322,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child9>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child9;
@@ -1325,6 +1344,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child9>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child9;
@@ -1435,6 +1455,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child10>::reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().child10;
@@ -1456,6 +1477,7 @@
                 typedef typename detail::expr_traits<typename Expr::proto_child10>::const_reference type;
                 
                 
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().child10;

Modified: trunk/boost/proto/detail/preprocessed/unpack_expr_.hpp
==============================================================================
--- trunk/boost/proto/detail/preprocessed/unpack_expr_.hpp (original)
+++ trunk/boost/proto/detail/preprocessed/unpack_expr_.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -24,6 +24,7 @@
               , Domain
>::result_type
         type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return proto::detail::protoify<terminal_type, Domain>()(fusion::at_c<0>(sequence));
@@ -45,6 +46,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             fusion_iterator0 it0 = fusion::begin(sequence);
@@ -69,6 +71,7 @@
>
         other;
         typedef typename other::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);
@@ -86,6 +89,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             fusion_iterator0 it0 = fusion::begin(sequence); fusion_iterator1 it1 = fusion::next(it0);
@@ -110,6 +114,7 @@
>
         other;
         typedef typename other::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);
@@ -127,6 +132,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             fusion_iterator0 it0 = fusion::begin(sequence); fusion_iterator1 it1 = fusion::next(it0); fusion_iterator2 it2 = fusion::next(it1);
@@ -151,6 +157,7 @@
>
         other;
         typedef typename other::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);
@@ -168,6 +175,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             fusion_iterator0 it0 = fusion::begin(sequence); fusion_iterator1 it1 = fusion::next(it0); fusion_iterator2 it2 = fusion::next(it1); fusion_iterator3 it3 = fusion::next(it2);
@@ -192,6 +200,7 @@
>
         other;
         typedef typename other::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);
@@ -209,6 +218,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             fusion_iterator0 it0 = fusion::begin(sequence); fusion_iterator1 it1 = fusion::next(it0); fusion_iterator2 it2 = fusion::next(it1); fusion_iterator3 it3 = fusion::next(it2); fusion_iterator4 it4 = fusion::next(it3);
@@ -233,6 +243,7 @@
>
         other;
         typedef typename other::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);
@@ -250,6 +261,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             fusion_iterator0 it0 = fusion::begin(sequence); fusion_iterator1 it1 = fusion::next(it0); fusion_iterator2 it2 = fusion::next(it1); fusion_iterator3 it3 = fusion::next(it2); fusion_iterator4 it4 = fusion::next(it3); fusion_iterator5 it5 = fusion::next(it4);
@@ -274,6 +286,7 @@
>
         other;
         typedef typename other::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);
@@ -291,6 +304,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             fusion_iterator0 it0 = fusion::begin(sequence); fusion_iterator1 it1 = fusion::next(it0); fusion_iterator2 it2 = fusion::next(it1); fusion_iterator3 it3 = fusion::next(it2); fusion_iterator4 it4 = fusion::next(it3); fusion_iterator5 it5 = fusion::next(it4); fusion_iterator6 it6 = fusion::next(it5);
@@ -315,6 +329,7 @@
>
         other;
         typedef typename other::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);
@@ -332,6 +347,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             fusion_iterator0 it0 = fusion::begin(sequence); fusion_iterator1 it1 = fusion::next(it0); fusion_iterator2 it2 = fusion::next(it1); fusion_iterator3 it3 = fusion::next(it2); fusion_iterator4 it4 = fusion::next(it3); fusion_iterator5 it5 = fusion::next(it4); fusion_iterator6 it6 = fusion::next(it5); fusion_iterator7 it7 = fusion::next(it6);
@@ -356,6 +372,7 @@
>
         other;
         typedef typename other::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);
@@ -373,6 +390,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             fusion_iterator0 it0 = fusion::begin(sequence); fusion_iterator1 it1 = fusion::next(it0); fusion_iterator2 it2 = fusion::next(it1); fusion_iterator3 it3 = fusion::next(it2); fusion_iterator4 it4 = fusion::next(it3); fusion_iterator5 it5 = fusion::next(it4); fusion_iterator6 it6 = fusion::next(it5); fusion_iterator7 it7 = fusion::next(it6); fusion_iterator8 it8 = fusion::next(it7);
@@ -397,6 +415,7 @@
>
         other;
         typedef typename other::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);
@@ -414,6 +433,7 @@
         typedef typename base_expr<Domain, Tag, proto_args>::type expr_type;
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             fusion_iterator0 it0 = fusion::begin(sequence); fusion_iterator1 it1 = fusion::next(it0); fusion_iterator2 it2 = fusion::next(it1); fusion_iterator3 it3 = fusion::next(it2); fusion_iterator4 it4 = fusion::next(it3); fusion_iterator5 it5 = fusion::next(it4); fusion_iterator6 it6 = fusion::next(it5); fusion_iterator7 it7 = fusion::next(it6); fusion_iterator8 it8 = fusion::next(it7); fusion_iterator9 it9 = fusion::next(it8);
@@ -438,6 +458,7 @@
>
         other;
         typedef typename other::type type;
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);

Modified: trunk/boost/proto/detail/traits.hpp
==============================================================================
--- trunk/boost/proto/detail/traits.hpp (original)
+++ trunk/boost/proto/detail/traits.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -182,6 +182,7 @@
 
                 /// INTERNAL ONLY
                 ///
+ BOOST_FORCEINLINE
                 static type call(Expr &e)
                 {
                     return e.proto_base().BOOST_PP_CAT(child, N);
@@ -207,6 +208,7 @@
 
                 /// INTERNAL ONLY
                 ///
+ BOOST_FORCEINLINE
                 static type call(Expr const &e)
                 {
                     return e.proto_base().BOOST_PP_CAT(child, N);

Modified: trunk/boost/proto/detail/unpack_expr_.hpp
==============================================================================
--- trunk/boost/proto/detail/unpack_expr_.hpp (original)
+++ trunk/boost/proto/detail/unpack_expr_.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -107,6 +107,7 @@
>::result_type
         type;
 
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return proto::detail::protoify<terminal_type, Domain>()(fusion::at_c<0>(sequence));
@@ -155,6 +156,7 @@
         typedef typename Domain::proto_generator proto_generator;
         typedef typename proto_generator::template result<proto_generator(expr_type)>::type type;
 
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             BOOST_PROTO_FUSION_ITERATORS(N)
@@ -183,6 +185,7 @@
 
         typedef typename other::type type;
 
+ BOOST_FORCEINLINE
         static type const call(Sequence const &sequence)
         {
             return other::call(sequence);

Modified: trunk/boost/proto/domain.hpp
==============================================================================
--- trunk/boost/proto/domain.hpp (original)
+++ trunk/boost/proto/domain.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -142,6 +142,7 @@
                 BOOST_PROTO_CALLABLE()
                 typedef typename remove_const<T>::type result_type;
 
+ BOOST_FORCEINLINE
                 result_type operator()(T &e) const
                 {
                     return e;
@@ -185,6 +186,7 @@
                 BOOST_PROTO_CALLABLE()
                 typedef T &result_type;
 
+ BOOST_FORCEINLINE
                 result_type operator()(T &e) const
                 {
                     return e;

Modified: trunk/boost/proto/expr.hpp
==============================================================================
--- trunk/boost/proto/expr.hpp (original)
+++ trunk/boost/proto/expr.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -58,6 +58,7 @@
         };
 
         template<typename T, typename Expr, typename Arg0>
+ BOOST_FORCEINLINE
         Expr make_terminal(T &t, Expr *, proto::term<Arg0> *)
         {
             Expr that = {t};
@@ -65,6 +66,7 @@
         }
 
         template<typename T, typename Expr, typename Arg0, std::size_t N>
+ BOOST_FORCEINLINE
         Expr make_terminal(T (&t)[N], Expr *, proto::term<Arg0[N]> *)
         {
             Expr that;
@@ -76,6 +78,7 @@
         }
 
         template<typename T, typename Expr, typename Arg0, std::size_t N>
+ BOOST_FORCEINLINE
         Expr make_terminal(T const(&t)[N], Expr *, proto::term<Arg0[N]> *)
         {
             Expr that;
@@ -129,6 +132,7 @@
     {
         BOOST_PROTO_UNEXPR()
 
+ BOOST_FORCEINLINE
         explicit unexpr(Expr const &e)
           : Expr(e)
         {}

Modified: trunk/boost/proto/extends.hpp
==============================================================================
--- trunk/boost/proto/extends.hpp (original)
+++ trunk/boost/proto/extends.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -75,6 +75,7 @@
     ///
     #define BOOST_PROTO_DEFINE_FUN_OP_IMPL_(Z, N, DATA, Const) \
         BOOST_PP_IF(N, BOOST_PROTO_TEMPLATE_YES_, BOOST_PROTO_TEMPLATE_NO_)(Z, N) \
+ BOOST_FORCEINLINE \
         typename BOOST_PROTO_RESULT_OF< \
             proto_generator( \
                 typename boost::proto::result_of::BOOST_PP_CAT(funop, N)< \
@@ -104,6 +105,7 @@
     ///
     #define BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(Const) \
         template<typename... A> \
+ BOOST_FORCEINLINE \
         typename BOOST_PROTO_RESULT_OF< \
             proto_generator( \
                 typename boost::proto::result_of::funop< \
@@ -174,22 +176,26 @@
         typedef boost::proto::tag::proto_expr fusion_tag; \
         BOOST_PP_REPEAT(BOOST_PROTO_MAX_ARITY, BOOST_PROTO_EXTENDS_CHILD, ~) \
                                                                                                     \
+ BOOST_FORCEINLINE \
         static proto_derived_expr const make(Expr const &e) \
         { \
             proto_derived_expr that = {e}; \
             return that; \
         } \
                                                                                                     \
+ BOOST_FORCEINLINE \
         proto_base_expr &proto_base() \
         { \
             return this->proto_expr_.proto_base(); \
         } \
                                                                                                     \
+ BOOST_FORCEINLINE \
         proto_base_expr const &proto_base() const \
         { \
             return this->proto_expr_.proto_base(); \
         } \
                                                                                                     \
+ BOOST_FORCEINLINE \
         operator proto_address_of_hack_type_() const \
         { \
             return boost::addressof(this->proto_base().child0); \
@@ -203,6 +209,7 @@
 
     #define BOOST_PROTO_EXTENDS_COPY_ASSIGN_IMPL_(This, Const, Typename) \
         BOOST_PROTO_DISABLE_MSVC_C4522 \
+ BOOST_FORCEINLINE \
         Typename() BOOST_PROTO_RESULT_OF< \
             Typename() This::proto_generator( \
                 Typename() boost::proto::base_expr< \
@@ -252,6 +259,7 @@
         ///
     #define BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(ThisConst, ThatConst) \
         template<typename A> \
+ BOOST_FORCEINLINE \
         typename BOOST_PROTO_RESULT_OF< \
             proto_generator( \
                 typename boost::proto::base_expr< \
@@ -318,6 +326,7 @@
         ///
     #define BOOST_PROTO_EXTENDS_SUBSCRIPT_IMPL_(ThisConst, ThatConst) \
         template<typename A> \
+ BOOST_FORCEINLINE \
         typename BOOST_PROTO_RESULT_OF< \
             proto_generator( \
                 typename boost::proto::base_expr< \
@@ -492,14 +501,17 @@
>
         struct extends
         {
+ BOOST_FORCEINLINE
             extends()
               : proto_expr_()
             {}
 
+ BOOST_FORCEINLINE
             extends(extends const &that)
               : proto_expr_(that.proto_expr_)
             {}
 
+ BOOST_FORCEINLINE
             extends(Expr const &expr_)
               : proto_expr_(expr_)
             {}
@@ -520,14 +532,17 @@
         template<typename Expr, typename Derived, typename Domain>
         struct extends<Expr, Derived, Domain, 0>
         {
+ BOOST_FORCEINLINE
             extends()
               : proto_expr_()
             {}
 
+ BOOST_FORCEINLINE
             extends(extends const &that)
               : proto_expr_(that.proto_expr_)
             {}
 
+ BOOST_FORCEINLINE
             extends(Expr const &expr_)
               : proto_expr_(expr_)
             {}
@@ -574,18 +589,21 @@
             #include <boost/proto/detail/extends_funop.hpp>
             #undef BOOST_PROTO_NO_WAVE_OUTPUT
 
+ BOOST_FORCEINLINE
             proto_base_expr const proto_base() const
             {
                 proto_base_expr that = {this->child0(), this->child1()};
                 return that;
             }
 
+ BOOST_FORCEINLINE
             proto_child0 child0() const
             {
                 using std::size_t;
                 return *(This *)((char *)this - BOOST_PROTO_OFFSETOF(This, proto_member_union_start_));
             }
 
+ BOOST_FORCEINLINE
             proto_child1 child1() const
             {
                 static expr<tag::terminal, term<Fun>, 0> const that = {Fun()};

Modified: trunk/boost/proto/generate.hpp
==============================================================================
--- trunk/boost/proto/generate.hpp (original)
+++ trunk/boost/proto/generate.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -43,6 +43,7 @@
>
             type;
 
+ BOOST_FORCEINLINE
             static type const call(proto::expr<Tag, term<Arg>, 0> const &e)
             {
                 type that = {e.child0};
@@ -61,6 +62,7 @@
>
             type;
 
+ BOOST_FORCEINLINE
             static type const call(proto::basic_expr<Tag, term<Arg>, 0> const &e)
             {
                 type that = {e.child0};
@@ -108,6 +110,7 @@
         /// \param expr A Proto expression
         /// \return expr
         template<typename Expr>
+ BOOST_FORCEINLINE
         #ifdef BOOST_PROTO_STRICT_RESULT_OF
         Expr
         #else
@@ -170,6 +173,7 @@
         /// \param expr A Proto expression
         /// \return Extends<Expr>(expr)
         template<typename Expr>
+ BOOST_FORCEINLINE
         Extends<Expr> operator ()(Expr const &e) const
         {
             return Extends<Expr>(e);
@@ -216,6 +220,7 @@
         /// \param expr The expression to wrap
         /// \return <tt>Extends\<Expr\> that = {expr}; return that;</tt>
         template<typename Expr>
+ BOOST_FORCEINLINE
         Extends<Expr> operator ()(Expr const &e) const
         {
             Extends<Expr> that = {e};
@@ -269,6 +274,7 @@
         /// \param expr The expression to modify.
         /// \return <tt>deep_copy(expr)</tt>
         template<typename Expr>
+ BOOST_FORCEINLINE
         typename result<by_value_generator(Expr)>::type operator ()(Expr const &e) const
         {
             return detail::by_value_generator_<Expr>::call(e);
@@ -326,6 +332,7 @@
         /// \param expr The expression to modify.
         /// \return Second()(First()(expr))
         template<typename Expr>
+ BOOST_FORCEINLINE
         typename result<compose_generators(Expr)>::type operator ()(Expr const &e) const
         {
             return Second()(First()(e));

Modified: trunk/boost/proto/make_expr.hpp
==============================================================================
--- trunk/boost/proto/make_expr.hpp (original)
+++ trunk/boost/proto/make_expr.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -282,6 +282,7 @@
             ///
             /// \return <tt>proto::make_expr\<Tag, Domain\>(a0,...aN)</tt>
             template<typename A0>
+ BOOST_FORCEINLINE
             typename result_of::make_expr<
                 Tag
               , Domain
@@ -351,6 +352,7 @@
             /// \param sequence A Fusion Forward Sequence
             /// \return <tt>proto::unpack_expr\<Tag, Domain\>(sequence)</tt>
             template<typename Sequence>
+ BOOST_FORCEINLINE
             typename result_of::unpack_expr<Tag, Domain, Sequence const>::type const
             operator ()(Sequence const &sequence) const
             {
@@ -387,6 +389,7 @@
     ///
     /// \return <tt>Domain()(make_\<Tag\>(wrap_(a0),...wrap_(aN)))</tt>.
     template<typename Tag, typename A0>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<A0>
       , result_of::make_expr<
@@ -406,6 +409,7 @@
     /// \overload
     ///
     template<typename Tag, typename Domain, typename C0>
+ BOOST_FORCEINLINE
     typename result_of::make_expr<
         Tag
       , Domain
@@ -451,6 +455,7 @@
     /// \return <tt>Domain()(make_\<Tag\>(wrap_\<0\>(s),...wrap_\<N-1\>(s)))</tt>,
     /// where N is the size of \c Sequence.
     template<typename Tag, typename Sequence>
+ BOOST_FORCEINLINE
     typename lazy_disable_if<
         is_domain<Sequence>
       , result_of::unpack_expr<Tag, Sequence const>
@@ -468,6 +473,7 @@
     /// \overload
     ///
     template<typename Tag, typename Domain, typename Sequence2>
+ BOOST_FORCEINLINE
     typename result_of::unpack_expr<Tag, Domain, Sequence2 const>::type const
     unpack_expr(Sequence2 const &sequence2)
     {

Modified: trunk/boost/proto/operators.hpp
==============================================================================
--- trunk/boost/proto/operators.hpp (original)
+++ trunk/boost/proto/operators.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -100,6 +100,7 @@
 
 #define BOOST_PROTO_DEFINE_UNARY_OPERATOR(OP, TAG, TRAIT, DOMAIN, POST) \
     template<typename Arg> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_unary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -113,6 +114,7 @@
     } \
                                                                                                     \
     template<typename Arg> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_unary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -128,6 +130,7 @@
 
 #define BOOST_PROTO_DEFINE_BINARY_OPERATOR(OP, TAG, TRAIT, DOMAIN) \
     template<typename Left, typename Right> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_binary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -142,6 +145,7 @@
     } \
                                                                                                     \
     template<typename Left, typename Right> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_binary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -156,6 +160,7 @@
     } \
                                                                                                     \
     template<typename Left, typename Right> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_binary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -170,6 +175,7 @@
     } \
                                                                                                     \
     template<typename Left, typename Right> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_binary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -188,6 +194,7 @@
 
 #define BOOST_PROTO_DEFINE_UNARY_OPERATOR(OP, TAG, TRAIT, DOMAIN, POST) \
     template<typename Arg> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_unary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -203,6 +210,7 @@
 
 #define BOOST_PROTO_DEFINE_BINARY_OPERATOR(OP, TAG, TRAIT, DOMAIN) \
     template<typename Left, typename Right> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_binary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -283,6 +291,7 @@
 
         // if_else, for the non-overloadable ternary conditional operator ?:
         template<typename A0, typename A1, typename A2>
+ BOOST_FORCEINLINE
         typename result_of::make_expr<
             tag::if_else_
           , deduce_domain

Modified: trunk/boost/proto/traits.hpp
==============================================================================
--- trunk/boost/proto/traits.hpp (original)
+++ trunk/boost/proto/traits.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -394,6 +394,7 @@
             /// \pre <tt>matches\<Expr, terminal\<T\> \>::value</tt> is \c true.
             /// \return \c e
             /// \throw nothrow
+ BOOST_FORCEINLINE
             #ifdef BOOST_PROTO_STRICT_RESULT_OF
             result_type
             #else
@@ -464,6 +465,7 @@
             /// \pre <tt>matches\<Expr, nullary_expr\<Tag, T\> \>::value</tt> is \c true.
             /// \return \c e
             /// \throw nothrow
+ BOOST_FORCEINLINE
             #ifdef BOOST_PROTO_STRICT_RESULT_OF
             result_type
             #else
@@ -655,6 +657,7 @@
             /// \param t The object to wrap.
             /// \return <tt>proto::as_expr\<Domain\>(t)</tt>
             template<typename T>
+ BOOST_FORCEINLINE
             typename add_const<typename result<as_expr(T &)>::type>::type
             operator ()(T &t) const
             {
@@ -664,6 +667,7 @@
             /// \overload
             ///
             template<typename T>
+ BOOST_FORCEINLINE
             typename add_const<typename result<as_expr(T const &)>::type>::type
             operator ()(T const &t) const
             {
@@ -672,6 +676,7 @@
 
             #if BOOST_WORKAROUND(BOOST_MSVC, == 1310)
             template<typename T, std::size_t N_>
+ BOOST_FORCEINLINE
             typename add_const<typename result<as_expr(T (&)[N_])>::type>::type
             operator ()(T (&t)[N_]) const
             {
@@ -679,6 +684,7 @@
             }
 
             template<typename T, std::size_t N_>
+ BOOST_FORCEINLINE
             typename add_const<typename result<as_expr(T const (&)[N_])>::type>::type
             operator ()(T const (&t)[N_]) const
             {
@@ -714,6 +720,7 @@
             /// \param t The object to wrap.
             /// \return <tt>proto::as_child\<Domain\>(t)</tt>
             template<typename T>
+ BOOST_FORCEINLINE
             typename add_const<typename result<as_child(T &)>::type>::type
             operator ()(T &t) const
             {
@@ -723,6 +730,7 @@
             /// \overload
             ///
             template<typename T>
+ BOOST_FORCEINLINE
             typename add_const<typename result<as_child(T const &)>::type>::type
             operator ()(T const &t) const
             {
@@ -753,6 +761,7 @@
             /// \return <tt>proto::child_c\<N\>(expr)</tt>
             /// \throw nothrow
             template<typename Expr>
+ BOOST_FORCEINLINE
             typename result_of::child_c<Expr &, N>::type
             operator ()(Expr &e) const
             {
@@ -762,6 +771,7 @@
             /// \overload
             ///
             template<typename Expr>
+ BOOST_FORCEINLINE
             typename result_of::child_c<Expr const &, N>::type
             operator ()(Expr const &e) const
             {
@@ -796,6 +806,7 @@
             /// \return <tt>proto::child\<N\>(expr)</tt>
             /// \throw nothrow
             template<typename Expr>
+ BOOST_FORCEINLINE
             typename result_of::child<Expr &, N>::type
             operator ()(Expr &e) const
             {
@@ -805,6 +816,7 @@
             /// \overload
             ///
             template<typename Expr>
+ BOOST_FORCEINLINE
             typename result_of::child<Expr const &, N>::type
             operator ()(Expr const &e) const
             {
@@ -834,6 +846,7 @@
             /// \return <tt>proto::value(expr)</tt>
             /// \throw nothrow
             template<typename Expr>
+ BOOST_FORCEINLINE
             typename result_of::value<Expr &>::type
             operator ()(Expr &e) const
             {
@@ -843,6 +856,7 @@
             /// \overload
             ///
             template<typename Expr>
+ BOOST_FORCEINLINE
             typename result_of::value<Expr const &>::type
             operator ()(Expr const &e) const
             {
@@ -872,6 +886,7 @@
             /// \return <tt>proto::left(expr)</tt>
             /// \throw nothrow
             template<typename Expr>
+ BOOST_FORCEINLINE
             typename result_of::left<Expr &>::type
             operator ()(Expr &e) const
             {
@@ -881,6 +896,7 @@
             /// \overload
             ///
             template<typename Expr>
+ BOOST_FORCEINLINE
             typename result_of::left<Expr const &>::type
             operator ()(Expr const &e) const
             {
@@ -910,6 +926,7 @@
             /// \return <tt>proto::right(expr)</tt>
             /// \throw nothrow
             template<typename Expr>
+ BOOST_FORCEINLINE
             typename result_of::right<Expr &>::type
             operator ()(Expr &e) const
             {
@@ -917,6 +934,7 @@
             }
 
             template<typename Expr>
+ BOOST_FORCEINLINE
             typename result_of::right<Expr const &>::type
             operator ()(Expr const &e) const
             {
@@ -948,6 +966,7 @@
     ///
     /// \param t The object to wrap.
     template<typename T>
+ BOOST_FORCEINLINE
     typename add_const<typename result_of::as_expr<T, default_domain>::type>::type
     as_expr(T &t BOOST_PROTO_DISABLE_IF_IS_CONST(T) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T))
     {
@@ -957,6 +976,7 @@
     /// \overload
     ///
     template<typename T>
+ BOOST_FORCEINLINE
     typename add_const<typename result_of::as_expr<T const, default_domain>::type>::type
     as_expr(T const &t)
     {
@@ -966,6 +986,7 @@
     /// \overload
     ///
     template<typename Domain, typename T>
+ BOOST_FORCEINLINE
     typename add_const<typename result_of::as_expr<T, Domain>::type>::type
     as_expr(T &t BOOST_PROTO_DISABLE_IF_IS_CONST(T) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T))
     {
@@ -975,6 +996,7 @@
     /// \overload
     ///
     template<typename Domain, typename T>
+ BOOST_FORCEINLINE
     typename add_const<typename result_of::as_expr<T const, Domain>::type>::type
     as_expr(T const &t)
     {
@@ -1001,6 +1023,7 @@
     ///
     /// \param t The object to wrap.
     template<typename T>
+ BOOST_FORCEINLINE
     typename add_const<typename result_of::as_child<T, default_domain>::type>::type
     as_child(T &t BOOST_PROTO_DISABLE_IF_IS_CONST(T) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T))
     {
@@ -1010,6 +1033,7 @@
     /// \overload
     ///
     template<typename T>
+ BOOST_FORCEINLINE
     typename add_const<typename result_of::as_child<T const, default_domain>::type>::type
     as_child(T const &t)
     {
@@ -1019,6 +1043,7 @@
     /// \overload
     ///
     template<typename Domain, typename T>
+ BOOST_FORCEINLINE
     typename add_const<typename result_of::as_child<T, Domain>::type>::type
     as_child(T &t BOOST_PROTO_DISABLE_IF_IS_CONST(T) BOOST_PROTO_DISABLE_IF_IS_FUNCTION(T))
     {
@@ -1028,6 +1053,7 @@
     /// \overload
     ///
     template<typename Domain, typename T>
+ BOOST_FORCEINLINE
     typename add_const<typename result_of::as_child<T const, Domain>::type>::type
     as_child(T const &t)
     {
@@ -1048,6 +1074,7 @@
     /// \throw nothrow
     /// \return A reference to the Nth child
     template<typename N, typename Expr>
+ BOOST_FORCEINLINE
     typename result_of::child<Expr &, N>::type
     child(Expr &e BOOST_PROTO_DISABLE_IF_IS_CONST(Expr))
     {
@@ -1057,6 +1084,7 @@
     /// \overload
     ///
     template<typename N, typename Expr>
+ BOOST_FORCEINLINE
     typename result_of::child<Expr const &, N>::type
     child(Expr const &e)
     {
@@ -1066,6 +1094,7 @@
     /// \overload
     ///
     template<typename Expr2>
+ BOOST_FORCEINLINE
     typename detail::expr_traits<typename Expr2::proto_base_expr::proto_child0>::reference
     child(Expr2 &expr2 BOOST_PROTO_DISABLE_IF_IS_CONST(Expr2))
     {
@@ -1075,6 +1104,7 @@
     /// \overload
     ///
     template<typename Expr2>
+ BOOST_FORCEINLINE
     typename detail::expr_traits<typename Expr2::proto_base_expr::proto_child0>::const_reference
     child(Expr2 const &expr2)
     {
@@ -1092,6 +1122,7 @@
     /// \throw nothrow
     /// \return A reference to the Nth child
     template<long N, typename Expr>
+ BOOST_FORCEINLINE
     typename result_of::child_c<Expr &, N>::type
     child_c(Expr &e BOOST_PROTO_DISABLE_IF_IS_CONST(Expr))
     {
@@ -1101,6 +1132,7 @@
     /// \overload
     ///
     template<long N, typename Expr>
+ BOOST_FORCEINLINE
     typename result_of::child_c<Expr const &, N>::type
     child_c(Expr const &e)
     {
@@ -1119,6 +1151,7 @@
     /// \throw nothrow
     /// \return A reference to the terminal's value
     template<typename Expr>
+ BOOST_FORCEINLINE
     typename result_of::value<Expr &>::type
     value(Expr &e BOOST_PROTO_DISABLE_IF_IS_CONST(Expr))
     {
@@ -1128,6 +1161,7 @@
     /// \overload
     ///
     template<typename Expr>
+ BOOST_FORCEINLINE
     typename result_of::value<Expr const &>::type
     value(Expr const &e)
     {
@@ -1146,6 +1180,7 @@
     /// \throw nothrow
     /// \return A reference to the left child
     template<typename Expr>
+ BOOST_FORCEINLINE
     typename result_of::left<Expr &>::type
     left(Expr &e BOOST_PROTO_DISABLE_IF_IS_CONST(Expr))
     {
@@ -1155,6 +1190,7 @@
     /// \overload
     ///
     template<typename Expr>
+ BOOST_FORCEINLINE
     typename result_of::left<Expr const &>::type
     left(Expr const &e)
     {
@@ -1173,6 +1209,7 @@
     /// \throw nothrow
     /// \return A reference to the right child
     template<typename Expr>
+ BOOST_FORCEINLINE
     typename result_of::right<Expr &>::type
     right(Expr &e BOOST_PROTO_DISABLE_IF_IS_CONST(Expr))
     {
@@ -1182,6 +1219,7 @@
     /// \overload
     ///
     template<typename Expr>
+ BOOST_FORCEINLINE
     typename result_of::right<Expr const &>::type
     right(Expr const &e)
     {

Modified: trunk/boost/proto/transform/call.hpp
==============================================================================
--- trunk/boost/proto/transform/call.hpp (original)
+++ trunk/boost/proto/transform/call.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -92,6 +92,7 @@
         {
             typedef typename BOOST_PROTO_RESULT_OF<Fun()>::type result_type;
 
+ BOOST_FORCEINLINE
             result_type operator()(
                 typename impl2::expr_param
               , typename impl2::state_param
@@ -140,6 +141,8 @@
         {
             typedef typename when<_, A0>::template impl<Expr, State, Data>::result_type a0;
             typedef typename detail::poly_function_traits<Fun, Fun(a0)>::result_type result_type;
+
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl2::expr_param e
               , typename impl2::state_param s
@@ -158,6 +161,8 @@
         {
             typedef typename when<_, A0>::template impl<Expr, State, Data>::result_type a0;
             typedef typename Fun::template impl<a0, State, Data>::result_type result_type;
+
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl2::expr_param e
               , typename impl2::state_param s
@@ -210,6 +215,8 @@
             typedef typename when<_, A0>::template impl<Expr, State, Data>::result_type a0;
             typedef typename when<_, A1>::template impl<Expr, State, Data>::result_type a1;
             typedef typename detail::poly_function_traits<Fun, Fun(a0, a1)>::result_type result_type;
+
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl2::expr_param e
               , typename impl2::state_param s
@@ -230,6 +237,8 @@
             typedef typename when<_, A0>::template impl<Expr, State, Data>::result_type a0;
             typedef typename when<_, A1>::template impl<Expr, State, Data>::result_type a1;
             typedef typename Fun::template impl<a0, a1, Data>::result_type result_type;
+
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl2::expr_param e
               , typename impl2::state_param s
@@ -290,6 +299,8 @@
             typedef typename when<_, A1>::template impl<Expr, State, Data>::result_type a1;
             typedef typename when<_, A2>::template impl<Expr, State, Data>::result_type a2;
             typedef typename detail::poly_function_traits<Fun, Fun(a0, a1, a2)>::result_type result_type;
+
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl2::expr_param e
               , typename impl2::state_param s
@@ -312,6 +323,8 @@
             typedef typename when<_, A1>::template impl<Expr, State, Data>::result_type a1;
             typedef typename when<_, A2>::template impl<Expr, State, Data>::result_type a2;
             typedef typename Fun::template impl<a0, a1, a2>::result_type result_type;
+
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl2::expr_param e
               , typename impl2::state_param s

Modified: trunk/boost/proto/transform/detail/call.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/call.hpp (original)
+++ trunk/boost/proto/transform/detail/call.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -69,6 +69,7 @@
             /// \param e The current expression
             /// \param s The current state
             /// \param d An arbitrary data
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s

Modified: trunk/boost/proto/transform/detail/construct_funop.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/construct_funop.hpp (original)
+++ trunk/boost/proto/transform/detail/construct_funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -33,6 +33,7 @@
     #define N BOOST_PP_ITERATION()
 
     template<BOOST_PP_ENUM_PARAMS(N, typename A)>
+ BOOST_FORCEINLINE
     Type operator ()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, &a)) const
     {
         return Type(BOOST_PP_ENUM_PARAMS(N, a));

Modified: trunk/boost/proto/transform/detail/construct_pod_funop.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/construct_pod_funop.hpp (original)
+++ trunk/boost/proto/transform/detail/construct_pod_funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -33,6 +33,7 @@
     #define N BOOST_PP_ITERATION()
 
     template<BOOST_PP_ENUM_PARAMS(N, typename A)>
+ BOOST_FORCEINLINE
     Type operator ()(BOOST_PP_ENUM_BINARY_PARAMS(N, A, &a)) const
     {
         Type that = {BOOST_PP_ENUM_PARAMS(N, a)};

Modified: trunk/boost/proto/transform/detail/make.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/make.hpp (original)
+++ trunk/boost/proto/transform/detail/make.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -108,6 +108,7 @@
             typedef proto::expr<T, A, N> result_type;
 
             template<BOOST_PP_ENUM_PARAMS(BOOST_PP_MAX(N, 1), typename A)>
+ BOOST_FORCEINLINE
             result_type operator ()(BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_MAX(N, 1), A, &a)) const
             {
                 return result_type::make(BOOST_PP_ENUM_PARAMS(BOOST_PP_MAX(N, 1), a));
@@ -120,6 +121,7 @@
             typedef proto::basic_expr<T, A, N> result_type;
 
             template<BOOST_PP_ENUM_PARAMS(BOOST_PP_MAX(N, 1), typename A)>
+ BOOST_FORCEINLINE
             result_type operator ()(BOOST_PP_ENUM_BINARY_PARAMS(BOOST_PP_MAX(N, 1), A, &a)) const
             {
                 return result_type::make(BOOST_PP_ENUM_PARAMS(BOOST_PP_MAX(N, 1), a));
@@ -127,6 +129,7 @@
         };
 
         template<typename Type BOOST_PP_ENUM_TRAILING_PARAMS(N, typename A)>
+ BOOST_FORCEINLINE
         Type construct(BOOST_PP_ENUM_BINARY_PARAMS(N, A, &a))
         {
             return construct_<Type>()(BOOST_PP_ENUM_PARAMS(N, a));
@@ -155,6 +158,7 @@
             /// \param e The current expression
             /// \param s The current state
             /// \param d An arbitrary data
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s

Modified: trunk/boost/proto/transform/detail/make_gcc_workaround.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/make_gcc_workaround.hpp (original)
+++ trunk/boost/proto/transform/detail/make_gcc_workaround.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -58,6 +58,7 @@
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
 
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -80,6 +81,7 @@
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
 
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s

Modified: trunk/boost/proto/transform/detail/pass_through_impl.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/pass_through_impl.hpp (original)
+++ trunk/boost/proto/transform/detail/pass_through_impl.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -73,6 +73,7 @@
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
 
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s

Modified: trunk/boost/proto/transform/detail/preprocessed/call.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/preprocessed/call.hpp (original)
+++ trunk/boost/proto/transform/detail/preprocessed/call.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -24,6 +24,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -54,6 +55,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -84,6 +86,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -114,6 +117,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -144,6 +148,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -174,6 +179,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -204,6 +210,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s

Modified: trunk/boost/proto/transform/detail/preprocessed/construct_funop.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/preprocessed/construct_funop.hpp (original)
+++ trunk/boost/proto/transform/detail/preprocessed/construct_funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -6,51 +6,61 @@
     // Software License, Version 1.0. (See accompanying file
     // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     template<typename A0>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0) const
     {
         return Type(a0);
     }
     template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1) const
     {
         return Type(a0 , a1);
     }
     template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2) const
     {
         return Type(a0 , a1 , a2);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3) const
     {
         return Type(a0 , a1 , a2 , a3);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4) const
     {
         return Type(a0 , a1 , a2 , a3 , a4);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5) const
     {
         return Type(a0 , a1 , a2 , a3 , a4 , a5);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6) const
     {
         return Type(a0 , a1 , a2 , a3 , a4 , a5 , a6);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7) const
     {
         return Type(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8) const
     {
         return Type(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8 , A9 &a9) const
     {
         return Type(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);

Modified: trunk/boost/proto/transform/detail/preprocessed/construct_pod_funop.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/preprocessed/construct_pod_funop.hpp (original)
+++ trunk/boost/proto/transform/detail/preprocessed/construct_pod_funop.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -6,60 +6,70 @@
     // Software License, Version 1.0. (See accompanying file
     // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
     template<typename A0>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0) const
     {
         Type that = {a0};
         return that;
     }
     template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1) const
     {
         Type that = {a0 , a1};
         return that;
     }
     template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2) const
     {
         Type that = {a0 , a1 , a2};
         return that;
     }
     template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3) const
     {
         Type that = {a0 , a1 , a2 , a3};
         return that;
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4) const
     {
         Type that = {a0 , a1 , a2 , a3 , a4};
         return that;
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5) const
     {
         Type that = {a0 , a1 , a2 , a3 , a4 , a5};
         return that;
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6) const
     {
         Type that = {a0 , a1 , a2 , a3 , a4 , a5 , a6};
         return that;
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7) const
     {
         Type that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7};
         return that;
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8) const
     {
         Type that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8};
         return that;
     }
     template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
     Type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8 , A9 &a9) const
     {
         Type that = {a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9};

Modified: trunk/boost/proto/transform/detail/preprocessed/make.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/preprocessed/make.hpp (original)
+++ trunk/boost/proto/transform/detail/preprocessed/make.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -20,6 +20,7 @@
         {
             typedef proto::expr<T, A, 0> result_type;
             template<typename A0>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0) const
             {
                 return result_type::make(a0);
@@ -30,12 +31,14 @@
         {
             typedef proto::basic_expr<T, A, 0> result_type;
             template<typename A0>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0) const
             {
                 return result_type::make(a0);
             }
         };
         template<typename Type >
+ BOOST_FORCEINLINE
         Type construct()
         {
             return construct_<Type>()();
@@ -61,6 +64,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -118,6 +122,7 @@
         {
             typedef proto::expr<T, A, 1> result_type;
             template<typename A0>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0) const
             {
                 return result_type::make(a0);
@@ -128,12 +133,14 @@
         {
             typedef proto::basic_expr<T, A, 1> result_type;
             template<typename A0>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0) const
             {
                 return result_type::make(a0);
             }
         };
         template<typename Type , typename A0>
+ BOOST_FORCEINLINE
         Type construct(A0 &a0)
         {
             return construct_<Type>()(a0);
@@ -159,6 +166,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -216,6 +224,7 @@
         {
             typedef proto::expr<T, A, 2> result_type;
             template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1) const
             {
                 return result_type::make(a0 , a1);
@@ -226,12 +235,14 @@
         {
             typedef proto::basic_expr<T, A, 2> result_type;
             template<typename A0 , typename A1>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1) const
             {
                 return result_type::make(a0 , a1);
             }
         };
         template<typename Type , typename A0 , typename A1>
+ BOOST_FORCEINLINE
         Type construct(A0 &a0 , A1 &a1)
         {
             return construct_<Type>()(a0 , a1);
@@ -257,6 +268,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -314,6 +326,7 @@
         {
             typedef proto::expr<T, A, 3> result_type;
             template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2) const
             {
                 return result_type::make(a0 , a1 , a2);
@@ -324,12 +337,14 @@
         {
             typedef proto::basic_expr<T, A, 3> result_type;
             template<typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2) const
             {
                 return result_type::make(a0 , a1 , a2);
             }
         };
         template<typename Type , typename A0 , typename A1 , typename A2>
+ BOOST_FORCEINLINE
         Type construct(A0 &a0 , A1 &a1 , A2 &a2)
         {
             return construct_<Type>()(a0 , a1 , a2);
@@ -355,6 +370,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -412,6 +428,7 @@
         {
             typedef proto::expr<T, A, 4> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3) const
             {
                 return result_type::make(a0 , a1 , a2 , a3);
@@ -422,12 +439,14 @@
         {
             typedef proto::basic_expr<T, A, 4> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3) const
             {
                 return result_type::make(a0 , a1 , a2 , a3);
             }
         };
         template<typename Type , typename A0 , typename A1 , typename A2 , typename A3>
+ BOOST_FORCEINLINE
         Type construct(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3)
         {
             return construct_<Type>()(a0 , a1 , a2 , a3);
@@ -453,6 +472,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -510,6 +530,7 @@
         {
             typedef proto::expr<T, A, 5> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4);
@@ -520,12 +541,14 @@
         {
             typedef proto::basic_expr<T, A, 5> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4);
             }
         };
         template<typename Type , typename A0 , typename A1 , typename A2 , typename A3 , typename A4>
+ BOOST_FORCEINLINE
         Type construct(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4)
         {
             return construct_<Type>()(a0 , a1 , a2 , a3 , a4);
@@ -551,6 +574,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -608,6 +632,7 @@
         {
             typedef proto::expr<T, A, 6> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4 , a5);
@@ -618,12 +643,14 @@
         {
             typedef proto::basic_expr<T, A, 6> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4 , a5);
             }
         };
         template<typename Type , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5>
+ BOOST_FORCEINLINE
         Type construct(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5)
         {
             return construct_<Type>()(a0 , a1 , a2 , a3 , a4 , a5);
@@ -649,6 +676,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -706,6 +734,7 @@
         {
             typedef proto::expr<T, A, 7> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4 , a5 , a6);
@@ -716,12 +745,14 @@
         {
             typedef proto::basic_expr<T, A, 7> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4 , a5 , a6);
             }
         };
         template<typename Type , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6>
+ BOOST_FORCEINLINE
         Type construct(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6)
         {
             return construct_<Type>()(a0 , a1 , a2 , a3 , a4 , a5 , a6);
@@ -747,6 +778,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -804,6 +836,7 @@
         {
             typedef proto::expr<T, A, 8> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
@@ -814,12 +847,14 @@
         {
             typedef proto::basic_expr<T, A, 8> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
             }
         };
         template<typename Type , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7>
+ BOOST_FORCEINLINE
         Type construct(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7)
         {
             return construct_<Type>()(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7);
@@ -845,6 +880,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -902,6 +938,7 @@
         {
             typedef proto::expr<T, A, 9> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
@@ -912,12 +949,14 @@
         {
             typedef proto::basic_expr<T, A, 9> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
             }
         };
         template<typename Type , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8>
+ BOOST_FORCEINLINE
         Type construct(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8)
         {
             return construct_<Type>()(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8);
@@ -943,6 +982,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -1000,6 +1040,7 @@
         {
             typedef proto::expr<T, A, 10> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8 , A9 &a9) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
@@ -1010,12 +1051,14 @@
         {
             typedef proto::basic_expr<T, A, 10> result_type;
             template<typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
             result_type operator ()(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8 , A9 &a9) const
             {
                 return result_type::make(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
             }
         };
         template<typename Type , typename A0 , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 , typename A6 , typename A7 , typename A8 , typename A9>
+ BOOST_FORCEINLINE
         Type construct(A0 &a0 , A1 &a1 , A2 &a2 , A3 &a3 , A4 &a4 , A5 &a5 , A6 &a6 , A7 &a7 , A8 &a8 , A9 &a9)
         {
             return construct_<Type>()(a0 , a1 , a2 , a3 , a4 , a5 , a6 , a7 , a8 , a9);
@@ -1041,6 +1084,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s

Modified: trunk/boost/proto/transform/detail/preprocessed/make_gcc_workaround.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/preprocessed/make_gcc_workaround.hpp (original)
+++ trunk/boost/proto/transform/detail/preprocessed/make_gcc_workaround.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -15,6 +15,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -35,6 +36,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -56,6 +58,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -76,6 +79,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -97,6 +101,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -117,6 +122,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -138,6 +144,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -158,6 +165,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -179,6 +187,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -199,6 +208,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -220,6 +230,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -240,6 +251,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -261,6 +273,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -281,6 +294,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -302,6 +316,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -322,6 +337,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -343,6 +359,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -363,6 +380,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -384,6 +402,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -404,6 +423,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -425,6 +445,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -445,6 +466,7 @@
         struct impl : transform_impl<Expr, State, Data>
         {
             typedef proto::basic_expr<Tag, Args, Arity> result_type;
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s

Modified: trunk/boost/proto/transform/detail/preprocessed/pass_through_impl.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/preprocessed/pass_through_impl.hpp (original)
+++ trunk/boost/proto/transform/detail/preprocessed/pass_through_impl.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -23,6 +23,7 @@
         expr_type;
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s
@@ -55,6 +56,7 @@
         expr_type;
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s
@@ -87,6 +89,7 @@
         expr_type;
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s
@@ -119,6 +122,7 @@
         expr_type;
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s
@@ -151,6 +155,7 @@
         expr_type;
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s
@@ -183,6 +188,7 @@
         expr_type;
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s
@@ -215,6 +221,7 @@
         expr_type;
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s
@@ -247,6 +254,7 @@
         expr_type;
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s
@@ -279,6 +287,7 @@
         expr_type;
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s
@@ -311,6 +320,7 @@
         expr_type;
         typedef typename unref_expr::proto_generator proto_generator;
         typedef typename BOOST_PROTO_RESULT_OF<proto_generator(expr_type)>::type const result_type;
+ BOOST_FORCEINLINE
         result_type const operator ()(
             typename pass_through_impl::expr_param e
           , typename pass_through_impl::state_param s

Modified: trunk/boost/proto/transform/detail/preprocessed/when.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/preprocessed/when.hpp (original)
+++ trunk/boost/proto/transform/detail/preprocessed/when.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -62,6 +62,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -129,6 +130,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -196,6 +198,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -263,6 +266,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -330,6 +334,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -397,6 +402,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -464,6 +470,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -531,6 +538,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -598,6 +606,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -665,6 +674,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s
@@ -732,6 +742,7 @@
             
             
             
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s

Modified: trunk/boost/proto/transform/detail/when.hpp
==============================================================================
--- trunk/boost/proto/transform/detail/when.hpp (original)
+++ trunk/boost/proto/transform/detail/when.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -93,6 +93,7 @@
             /// \param d An arbitrary data
             /// \pre <tt>matches\<Expr, Grammar\>::value</tt> is \c true
             /// \return <tt>which()(e, s, d)</tt>
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param e
               , typename impl::state_param s

Modified: trunk/boost/proto/transform/impl.hpp
==============================================================================
--- trunk/boost/proto/transform/impl.hpp (original)
+++ trunk/boost/proto/transform/impl.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -30,6 +30,7 @@
     }; \
                                                                                                                 \
     template<typename Expr> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::apply_transform<transform_type(Expr &)>::result_type \
     operator ()(Expr &e) const \
     { \
@@ -38,6 +39,7 @@
     } \
                                                                                                                 \
     template<typename Expr, typename State> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::apply_transform<transform_type(Expr &, State &)>::result_type \
     operator ()(Expr &e, State &s) const \
     { \
@@ -46,6 +48,7 @@
     } \
                                                                                                                 \
     template<typename Expr, typename State> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::apply_transform<transform_type(Expr &, State const &)>::result_type \
     operator ()(Expr &e, State const &s) const \
     { \
@@ -54,6 +57,7 @@
     } \
                                                                                                                 \
     template<typename Expr, typename State, typename Data> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::apply_transform<transform_type(Expr &, State &, Data &)>::result_type \
     operator ()(Expr &e, State &s, Data &d) const \
     { \
@@ -61,6 +65,7 @@
     } \
                                                                                                                 \
     template<typename Expr, typename State, typename Data> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::apply_transform<transform_type(Expr &, State const &, Data &)>::result_type \
     operator ()(Expr &e, State const &s, Data &d) const \
     { \
@@ -84,6 +89,7 @@
     }; \
                                                                                                                 \
     template<typename Expr> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::apply_transform<transform_type(Expr const &)>::result_type \
     operator ()(Expr &&e) const \
     { \
@@ -92,6 +98,7 @@
     } \
                                                                                                                 \
     template<typename Expr, typename State> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::apply_transform<transform_type(Expr const &, State const &)>::result_type \
     operator ()(Expr &&e, State &&s) const \
     { \
@@ -100,6 +107,7 @@
     } \
                                                                                                                 \
     template<typename Expr, typename State, typename Data> \
+ BOOST_FORCEINLINE \
     typename boost::proto::detail::apply_transform<transform_type(Expr const &, State const &, Data const &)>::result_type \
     operator ()(Expr &&e, State &&s, Data &&d) const \
     { \

Modified: trunk/boost/proto/transform/make.hpp
==============================================================================
--- trunk/boost/proto/transform/make.hpp (original)
+++ trunk/boost/proto/transform/make.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -117,6 +117,7 @@
         {
             typedef Type result_type;
 
+ BOOST_FORCEINLINE
             Type operator ()() const
             {
                 return Type();
@@ -131,6 +132,7 @@
         {
             typedef Type result_type;
 
+ BOOST_FORCEINLINE
             Type operator ()() const
             {
                 return Type();
@@ -231,6 +233,7 @@
             typedef typename detail::make_if_<Object, Expr, State, Data>::type result_type;
 
             /// \return <tt>result_type()</tt>
+ BOOST_FORCEINLINE
             result_type operator ()(
                 typename impl::expr_param
               , typename impl::state_param

Modified: trunk/boost/proto/transform/pass_through.hpp
==============================================================================
--- trunk/boost/proto/transform/pass_through.hpp (original)
+++ trunk/boost/proto/transform/pass_through.hpp 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -47,6 +47,7 @@
             /// \param e An expression
             /// \return \c e
             /// \throw nothrow
+ BOOST_FORCEINLINE
             #ifdef BOOST_PROTO_STRICT_RESULT_OF
             result_type
             #else

Modified: trunk/libs/proto/preprocess/wave.cfg
==============================================================================
--- trunk/libs/proto/preprocess/wave.cfg (original)
+++ trunk/libs/proto/preprocess/wave.cfg 2011-11-20 15:25:49 EST (Sun, 20 Nov 2011)
@@ -9,6 +9,7 @@
 -NBOOST_PROTO_USE_GET_POINTER
 -NBOOST_PROTO_GET_POINTER
 -NBOOST_PROTO_ASSERT_VALID_DOMAIN
+-NBOOST_FORCEINLINE
 -SC:\boost\org\trunk
 -S"C:\Program Files\Microsoft Visual Studio 10.0\VC\include"
 -S.


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