diff options
Diffstat (limited to 'boost/proto/operators.hpp')
-rw-r--r-- | boost/proto/operators.hpp | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/boost/proto/operators.hpp b/boost/proto/operators.hpp index 540e85f637..1f2bad8c2b 100644 --- a/boost/proto/operators.hpp +++ b/boost/proto/operators.hpp @@ -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 @@ namespace boost { namespace proto #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 @@ namespace boost { namespace proto } \ \ 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 @@ namespace boost { namespace proto #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 @@ namespace boost { namespace proto } \ \ 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 @@ namespace boost { namespace proto } \ \ 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 @@ namespace boost { namespace proto } \ \ 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 @@ namespace boost { namespace proto #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 @@ namespace boost { namespace proto #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 @@ namespace boost { namespace proto }} +#if defined(_MSC_VER) && (_MSC_VER >= 1020) +# pragma warning(pop) +#endif + #endif |