$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r78196 - in trunk/boost/proto: . detail transform
From: eric_at_[hidden]
Date: 2012-04-25 15:41:39
Author: eric_niebler
Date: 2012-04-25 15:41:37 EDT (Wed, 25 Apr 2012)
New Revision: 78196
URL: http://svn.boost.org/trac/boost/changeset/78196
Log:
disable '__forceinline not inlined' warning on msvc
Text files modified: 
   trunk/boost/proto/debug.hpp                  |     3 +++                                     
   trunk/boost/proto/detail/as_expr.hpp         |     9 +++++++++                               
   trunk/boost/proto/detail/as_lvalue.hpp       |     9 +++++++++                               
   trunk/boost/proto/detail/decltype.hpp        |     9 +++++++++                               
   trunk/boost/proto/detail/dont_care.hpp       |     9 +++++++++                               
   trunk/boost/proto/detail/ignore_unused.hpp   |     9 +++++++++                               
   trunk/boost/proto/domain.hpp                 |     9 +++++++++                               
   trunk/boost/proto/expr.hpp                   |     1 +                                       
   trunk/boost/proto/extends.hpp                |    29 ++++++++++++++++-------------           
   trunk/boost/proto/generate.hpp               |     9 +++++++++                               
   trunk/boost/proto/make_expr.hpp              |     7 ++++---                                 
   trunk/boost/proto/operators.hpp              |    25 +++++++++++++++++--------               
   trunk/boost/proto/proto_fwd.hpp              |     8 ++++++++                                
   trunk/boost/proto/traits.hpp                 |    13 ++++++++-----                           
   trunk/boost/proto/transform/call.hpp         |     9 +++++++++                               
   trunk/boost/proto/transform/impl.hpp         |     9 +++++++++                               
   trunk/boost/proto/transform/make.hpp         |     9 +++++++++                               
   trunk/boost/proto/transform/pass_through.hpp |     9 +++++++++                               
   trunk/boost/proto/transform/when.hpp         |     9 +++++++++                               
   19 files changed, 165 insertions(+), 29 deletions(-)
Modified: trunk/boost/proto/debug.hpp
==============================================================================
--- trunk/boost/proto/debug.hpp	(original)
+++ trunk/boost/proto/debug.hpp	2012-04-25 15:41:37 EDT (Wed, 25 Apr 2012)
@@ -91,6 +91,9 @@
             {}
 
             std::ostream &sout_;
+
+        private:
+            ostream_wrapper &operator =(ostream_wrapper const &);
         };
 
         struct named_any
Modified: trunk/boost/proto/detail/as_expr.hpp
==============================================================================
--- trunk/boost/proto/detail/as_expr.hpp	(original)
+++ trunk/boost/proto/detail/as_expr.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/detail/as_lvalue.hpp
==============================================================================
--- trunk/boost/proto/detail/as_lvalue.hpp	(original)
+++ trunk/boost/proto/detail/as_lvalue.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/detail/decltype.hpp
==============================================================================
--- trunk/boost/proto/detail/decltype.hpp	(original)
+++ trunk/boost/proto/detail/decltype.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/detail/dont_care.hpp
==============================================================================
--- trunk/boost/proto/detail/dont_care.hpp	(original)
+++ trunk/boost/proto/detail/dont_care.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/detail/ignore_unused.hpp
==============================================================================
--- trunk/boost/proto/detail/ignore_unused.hpp	(original)
+++ trunk/boost/proto/detail/ignore_unused.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/domain.hpp
==============================================================================
--- trunk/boost/proto/domain.hpp	(original)
+++ trunk/boost/proto/domain.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/expr.hpp
==============================================================================
--- trunk/boost/proto/expr.hpp	(original)
+++ trunk/boost/proto/expr.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/extends.hpp
==============================================================================
--- trunk/boost/proto/extends.hpp	(original)
+++ trunk/boost/proto/extends.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/generate.hpp
==============================================================================
--- trunk/boost/proto/generate.hpp	(original)
+++ trunk/boost/proto/generate.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/make_expr.hpp
==============================================================================
--- trunk/boost/proto/make_expr.hpp	(original)
+++ trunk/boost/proto/make_expr.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/operators.hpp
==============================================================================
--- trunk/boost/proto/operators.hpp	(original)
+++ trunk/boost/proto/operators.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/proto_fwd.hpp
==============================================================================
--- trunk/boost/proto/proto_fwd.hpp	(original)
+++ trunk/boost/proto/proto_fwd.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/traits.hpp
==============================================================================
--- trunk/boost/proto/traits.hpp	(original)
+++ trunk/boost/proto/traits.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/transform/call.hpp
==============================================================================
--- trunk/boost/proto/transform/call.hpp	(original)
+++ trunk/boost/proto/transform/call.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/transform/impl.hpp
==============================================================================
--- trunk/boost/proto/transform/impl.hpp	(original)
+++ trunk/boost/proto/transform/impl.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/transform/make.hpp
==============================================================================
--- trunk/boost/proto/transform/make.hpp	(original)
+++ trunk/boost/proto/transform/make.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/transform/pass_through.hpp
==============================================================================
--- trunk/boost/proto/transform/pass_through.hpp	(original)
+++ trunk/boost/proto/transform/pass_through.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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: trunk/boost/proto/transform/when.hpp
==============================================================================
--- trunk/boost/proto/transform/when.hpp	(original)
+++ trunk/boost/proto/transform/when.hpp	2012-04-25 15:41:37 EDT (Wed, 25 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