Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78260 - in branches/release: . boost boost/proto boost/proto/detail boost/proto/transform
From: eric_at_[hidden]
Date: 2012-04-29 21:44:53


Author: eric_niebler
Date: 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
New Revision: 78260
URL: http://svn.boost.org/trac/boost/changeset/78260

Log:
merge [78122], [78141], [78196] from trunk
Properties modified:
   branches/release/ (props changed)
   branches/release/boost/ (props changed)
Text files modified:
   branches/release/boost/proto/debug.hpp | 3 +++
   branches/release/boost/proto/detail/as_expr.hpp | 9 +++++++++
   branches/release/boost/proto/detail/as_lvalue.hpp | 9 +++++++++
   branches/release/boost/proto/detail/decltype.hpp | 9 +++++++++
   branches/release/boost/proto/detail/dont_care.hpp | 9 +++++++++
   branches/release/boost/proto/detail/ignore_unused.hpp | 9 +++++++++
   branches/release/boost/proto/domain.hpp | 9 +++++++++
   branches/release/boost/proto/expr.hpp | 1 +
   branches/release/boost/proto/extends.hpp | 29 ++++++++++++++++-------------
   branches/release/boost/proto/generate.hpp | 9 +++++++++
   branches/release/boost/proto/make_expr.hpp | 7 ++++---
   branches/release/boost/proto/matches.hpp | 18 +++++++++++-------
   branches/release/boost/proto/operators.hpp | 25 +++++++++++++++++--------
   branches/release/boost/proto/proto_fwd.hpp | 8 ++++++++
   branches/release/boost/proto/traits.hpp | 13 ++++++++-----
   branches/release/boost/proto/transform/call.hpp | 9 +++++++++
   branches/release/boost/proto/transform/impl.hpp | 9 +++++++++
   branches/release/boost/proto/transform/make.hpp | 9 +++++++++
   branches/release/boost/proto/transform/pass_through.hpp | 9 +++++++++
   branches/release/boost/proto/transform/when.hpp | 9 +++++++++
   20 files changed, 176 insertions(+), 36 deletions(-)

Modified: branches/release/boost/proto/debug.hpp
==============================================================================
--- branches/release/boost/proto/debug.hpp (original)
+++ branches/release/boost/proto/debug.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -91,6 +91,9 @@
             {}
 
             std::ostream &sout_;
+
+ private:
+ ostream_wrapper &operator =(ostream_wrapper const &);
         };
 
         struct named_any

Modified: branches/release/boost/proto/detail/as_expr.hpp
==============================================================================
--- branches/release/boost/proto/detail/as_expr.hpp (original)
+++ branches/release/boost/proto/detail/as_expr.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -17,6 +17,11 @@
 #include <boost/proto/proto_fwd.hpp>
 #include <boost/proto/args.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto { namespace detail
 {
 
@@ -175,4 +180,8 @@
 
 }}}
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/detail/as_lvalue.hpp
==============================================================================
--- branches/release/boost/proto/detail/as_lvalue.hpp (original)
+++ branches/release/boost/proto/detail/as_lvalue.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -11,6 +11,11 @@
 
 #include <boost/proto/proto_fwd.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto
 {
     namespace detail
@@ -31,4 +36,8 @@
     }
 }}
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/detail/decltype.hpp
==============================================================================
--- branches/release/boost/proto/detail/decltype.hpp (original)
+++ branches/release/boost/proto/detail/decltype.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -34,6 +34,11 @@
 #include <boost/utility/result_of.hpp>
 #include <boost/utility/enable_if.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 #ifndef BOOST_NO_DECLTYPE
 # define BOOST_PROTO_DECLTYPE_(EXPR, TYPE) typedef decltype(EXPR) TYPE;
 #else
@@ -498,4 +503,8 @@
     } // namespace detail
 }}
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/detail/dont_care.hpp
==============================================================================
--- branches/release/boost/proto/detail/dont_care.hpp (original)
+++ branches/release/boost/proto/detail/dont_care.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -11,6 +11,11 @@
 
 #include <boost/config.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto
 {
     namespace detail
@@ -22,4 +27,8 @@
     }
 }}
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/detail/ignore_unused.hpp
==============================================================================
--- branches/release/boost/proto/detail/ignore_unused.hpp (original)
+++ branches/release/boost/proto/detail/ignore_unused.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -12,6 +12,11 @@
 
 #include <boost/config.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto
 {
     namespace detail
@@ -22,4 +27,8 @@
     }
 }}
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/domain.hpp
==============================================================================
--- branches/release/boost/proto/domain.hpp (original)
+++ branches/release/boost/proto/domain.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -18,6 +18,11 @@
 #include <boost/proto/detail/as_expr.hpp>
 #include <boost/proto/detail/deduce_domain.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto
 {
 
@@ -325,4 +330,8 @@
 
 }}
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/expr.hpp
==============================================================================
--- branches/release/boost/proto/expr.hpp (original)
+++ branches/release/boost/proto/expr.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -31,6 +31,7 @@
 # pragma warning(disable : 4510) // default constructor could not be generated
 # pragma warning(disable : 4512) // assignment operator could not be generated
 # pragma warning(disable : 4610) // user defined constructor required
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
 #endif
 
 namespace boost { namespace proto

Modified: branches/release/boost/proto/extends.hpp
==============================================================================
--- branches/release/boost/proto/extends.hpp (original)
+++ branches/release/boost/proto/extends.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -34,10 +34,9 @@
 #include <boost/proto/generate.hpp>
 #include <boost/proto/detail/remove_typename.hpp>
 
-#ifdef _MSC_VER
-#define BOOST_PROTO_DISABLE_MSVC_C4522 __pragma(warning(disable: 4522))
-#else
-#define BOOST_PROTO_DISABLE_MSVC_C4522
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
 #endif
 
 namespace boost { namespace proto
@@ -75,7 +74,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 \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
         typename BOOST_PROTO_RESULT_OF< \
             proto_generator( \
                 typename boost::proto::result_of::BOOST_PP_CAT(funop, N)< \
@@ -105,7 +104,7 @@
     ///
     #define BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(Const) \
         template<typename... A> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
         typename BOOST_PROTO_RESULT_OF< \
             proto_generator( \
                 typename boost::proto::result_of::funop< \
@@ -176,26 +175,26 @@
         typedef boost::proto::tag::proto_expr fusion_tag; \
         BOOST_PP_REPEAT(BOOST_PROTO_MAX_ARITY, BOOST_PROTO_EXTENDS_CHILD, ~) \
                                                                                                     \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
         static proto_derived_expr const make(Expr const &e) \
         { \
             proto_derived_expr that = {e}; \
             return that; \
         } \
                                                                                                     \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
         proto_base_expr &proto_base() \
         { \
             return this->proto_expr_.proto_base(); \
         } \
                                                                                                     \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
         proto_base_expr const &proto_base() const \
         { \
             return this->proto_expr_.proto_base(); \
         } \
                                                                                                     \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
         operator proto_address_of_hack_type_() const \
         { \
             return boost::addressof(this->proto_base().child0); \
@@ -209,7 +208,7 @@
 
     #define BOOST_PROTO_EXTENDS_COPY_ASSIGN_IMPL_(This, Const, Typename) \
         BOOST_PROTO_DISABLE_MSVC_C4522 \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
         Typename() BOOST_PROTO_RESULT_OF< \
             Typename() This::proto_generator( \
                 Typename() boost::proto::base_expr< \
@@ -259,7 +258,7 @@
         ///
     #define BOOST_PROTO_EXTENDS_ASSIGN_IMPL_(ThisConst, ThatConst) \
         template<typename A> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
         typename BOOST_PROTO_RESULT_OF< \
             proto_generator( \
                 typename boost::proto::base_expr< \
@@ -326,7 +325,7 @@
         ///
     #define BOOST_PROTO_EXTENDS_SUBSCRIPT_IMPL_(ThisConst, ThatConst) \
         template<typename A> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
         typename BOOST_PROTO_RESULT_OF< \
             proto_generator( \
                 typename boost::proto::base_expr< \
@@ -641,4 +640,8 @@
 
 }}
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/generate.hpp
==============================================================================
--- branches/release/boost/proto/generate.hpp (original)
+++ branches/release/boost/proto/generate.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -24,6 +24,11 @@
 #include <boost/proto/proto_fwd.hpp>
 #include <boost/proto/args.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto
 {
 
@@ -440,4 +445,8 @@
     #endif
 }
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif // BOOST_PROTO_GENERATE_HPP_EAN_02_13_2007

Modified: branches/release/boost/proto/make_expr.hpp
==============================================================================
--- branches/release/boost/proto/make_expr.hpp (original)
+++ branches/release/boost/proto/make_expr.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -45,9 +45,10 @@
 #include <boost/proto/detail/poly_function.hpp>
 #include <boost/proto/detail/deprecated.hpp>
 
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma warning(push)
-# pragma warning(disable: 4180) // qualifier applied to function type has no meaning; ignored
+# pragma warning(disable : 4180) // qualifier applied to function type has no meaning; ignored
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
 #endif
 
 namespace boost { namespace proto
@@ -501,7 +502,7 @@
 
 }}
 
-#ifdef _MSC_VER
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
 # pragma warning(pop)
 #endif
 

Modified: branches/release/boost/proto/matches.hpp
==============================================================================
--- branches/release/boost/proto/matches.hpp (original)
+++ branches/release/boost/proto/matches.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -351,18 +351,22 @@
         template<typename Expr, typename Tag, typename Args, long Arity, typename If, typename Then, typename Else>
         struct matches_<Expr, proto::basic_expr<Tag, Args, Arity>, proto::if_<If, Then, Else> >
           : mpl::eval_if_c<
- remove_reference<
- typename when<_, If>::template impl<Expr, int, int>::result_type
- >::type::value
+ static_cast<bool>(
+ remove_reference<
+ typename when<_, If>::template impl<Expr, int, int>::result_type
+ >::type::value
+ )
               , matches_<Expr, proto::basic_expr<Tag, Args, Arity>, typename Then::proto_grammar>
               , matches_<Expr, proto::basic_expr<Tag, Args, Arity>, typename Else::proto_grammar>
>::type
         {
             typedef
                 typename mpl::if_c<
- remove_reference<
- typename when<_, If>::template impl<Expr, int, int>::result_type
- >::type::value
+ static_cast<bool>(
+ remove_reference<
+ typename when<_, If>::template impl<Expr, int, int>::result_type
+ >::type::value
+ )
                   , Then
                   , Else
>::type
@@ -700,7 +704,7 @@
 
             typedef
                 typename mpl::if_c<
- remove_reference<condition>::type::value
+ static_cast<bool>(remove_reference<condition>::type::value)
                   , when<_, Then>
                   , when<_, Else>
>::type

Modified: branches/release/boost/proto/operators.hpp
==============================================================================
--- branches/release/boost/proto/operators.hpp (original)
+++ branches/release/boost/proto/operators.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -21,6 +21,11 @@
 #include <boost/proto/generate.hpp>
 #include <boost/proto/make_expr.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto
 {
     namespace detail
@@ -100,7 +105,7 @@
 
 #define BOOST_PROTO_DEFINE_UNARY_OPERATOR(OP, TAG, TRAIT, DOMAIN, POST) \
     template<typename Arg> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_unary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -114,7 +119,7 @@
     } \
                                                                                                     \
     template<typename Arg> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_unary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -130,7 +135,7 @@
 
 #define BOOST_PROTO_DEFINE_BINARY_OPERATOR(OP, TAG, TRAIT, DOMAIN) \
     template<typename Left, typename Right> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_binary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -145,7 +150,7 @@
     } \
                                                                                                     \
     template<typename Left, typename Right> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_binary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -160,7 +165,7 @@
     } \
                                                                                                     \
     template<typename Left, typename Right> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_binary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -175,7 +180,7 @@
     } \
                                                                                                     \
     template<typename Left, typename Right> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_binary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -194,7 +199,7 @@
 
 #define BOOST_PROTO_DEFINE_UNARY_OPERATOR(OP, TAG, TRAIT, DOMAIN, POST) \
     template<typename Arg> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_unary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -210,7 +215,7 @@
 
 #define BOOST_PROTO_DEFINE_BINARY_OPERATOR(OP, TAG, TRAIT, DOMAIN) \
     template<typename Left, typename Right> \
- BOOST_FORCEINLINE \
+ BOOST_PROTO_DISABLE_MSVC_C4714 BOOST_FORCEINLINE \
     typename boost::proto::detail::enable_binary< \
         DOMAIN \
       , DOMAIN::proto_grammar \
@@ -366,4 +371,8 @@
 
 }}
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/proto_fwd.hpp
==============================================================================
--- branches/release/boost/proto/proto_fwd.hpp (original)
+++ branches/release/boost/proto/proto_fwd.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -118,6 +118,14 @@
 # define BOOST_PROTO_EXTENDED_TEMPLATE_PARAMETERS_MATCHING
 #endif
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# define BOOST_PROTO_DISABLE_MSVC_C4522 __pragma(warning(disable : 4522)) // 'class' : multiple assignment operators specified
+# define BOOST_PROTO_DISABLE_MSVC_C4714 __pragma(warning(disable : 4714)) // function 'xxx' marked as __forceinline not inlined
+#else
+# define BOOST_PROTO_DISABLE_MSVC_C4522
+# define BOOST_PROTO_DISABLE_MSVC_C4714
+#endif
+
 namespace boost { namespace proto
 {
     namespace detail

Modified: branches/release/boost/proto/traits.hpp
==============================================================================
--- branches/release/boost/proto/traits.hpp (original)
+++ branches/release/boost/proto/traits.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -32,9 +32,12 @@
 #include <boost/proto/domain.hpp>
 #include <boost/proto/transform/pass_through.hpp>
 
-#if BOOST_WORKAROUND( BOOST_MSVC, >= 1400 )
- #pragma warning(push)
- #pragma warning(disable: 4180) // warning C4180: qualifier applied to function type has no meaning; ignored
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# if BOOST_WORKAROUND( BOOST_MSVC, >= 1400 )
+# pragma warning(disable: 4180) // warning C4180: qualifier applied to function type has no meaning; ignored
+# endif
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
 #endif
 
 namespace boost { namespace proto
@@ -1256,8 +1259,8 @@
 
 }}
 
-#if BOOST_WORKAROUND( BOOST_MSVC, >= 1400 )
- #pragma warning(pop)
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
 #endif
 
 #endif

Modified: branches/release/boost/proto/transform/call.hpp
==============================================================================
--- branches/release/boost/proto/transform/call.hpp (original)
+++ branches/release/boost/proto/transform/call.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -9,6 +9,11 @@
 #ifndef BOOST_PROTO_TRANSFORM_CALL_HPP_EAN_11_02_2007
 #define BOOST_PROTO_TRANSFORM_CALL_HPP_EAN_11_02_2007
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable: 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 #include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/facilities/intercept.hpp>
 #include <boost/preprocessor/iteration/iterate.hpp>
@@ -365,4 +370,8 @@
 
 }} // namespace boost::proto
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/transform/impl.hpp
==============================================================================
--- branches/release/boost/proto/transform/impl.hpp (original)
+++ branches/release/boost/proto/transform/impl.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -12,6 +12,11 @@
 #include <boost/config.hpp>
 #include <boost/proto/proto_fwd.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto
 {
 #ifdef BOOST_NO_RVALUE_REFERENCES
@@ -238,4 +243,8 @@
 
 }} // namespace boost::proto
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/transform/make.hpp
==============================================================================
--- branches/release/boost/proto/transform/make.hpp (original)
+++ branches/release/boost/proto/transform/make.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -32,6 +32,11 @@
 #include <boost/proto/detail/as_lvalue.hpp>
 #include <boost/proto/detail/ignore_unused.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto
 {
     namespace detail
@@ -265,4 +270,8 @@
 
 }}
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/transform/pass_through.hpp
==============================================================================
--- branches/release/boost/proto/transform/pass_through.hpp (original)
+++ branches/release/boost/proto/transform/pass_through.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -22,6 +22,11 @@
 #include <boost/proto/transform/impl.hpp>
 #include <boost/proto/detail/ignore_unused.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto
 {
     namespace detail
@@ -134,4 +139,8 @@
 
 }} // namespace boost::proto
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif

Modified: branches/release/boost/proto/transform/when.hpp
==============================================================================
--- branches/release/boost/proto/transform/when.hpp (original)
+++ branches/release/boost/proto/transform/when.hpp 2012-04-29 21:44:50 EDT (Sun, 29 Apr 2012)
@@ -22,6 +22,11 @@
 #include <boost/proto/transform/make.hpp>
 #include <boost/proto/transform/impl.hpp>
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(push)
+# pragma warning(disable : 4714) // function 'xxx' marked as __forceinline not inlined
+#endif
+
 namespace boost { namespace proto
 {
     /// \brief A grammar element and a PrimitiveTransform that associates
@@ -194,4 +199,8 @@
 
 }} // namespace boost::proto
 
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+# pragma warning(pop)
+#endif
+
 #endif


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