diff options
Diffstat (limited to 'boost/proto/traits.hpp')
-rw-r--r-- | boost/proto/traits.hpp | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/boost/proto/traits.hpp b/boost/proto/traits.hpp index 05263b14d0..f1a83fca03 100644 --- a/boost/proto/traits.hpp +++ b/boost/proto/traits.hpp @@ -32,7 +32,7 @@ #include <boost/proto/domain.hpp> #include <boost/proto/transform/pass_through.hpp> -#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#if defined(_MSC_VER) # pragma warning(push) # if BOOST_WORKAROUND( BOOST_MSVC, >= 1400 ) # pragma warning(disable: 4180) // warning C4180: qualifier applied to function type has no meaning; ignored @@ -116,7 +116,7 @@ namespace boost { namespace proto : mpl::false_ {}; - #if BOOST_WORKAROUND(__GNUC__, == 3) || (__GNUC__ == 4 && __GNUC_MINOR__ == 0) + #if BOOST_WORKAROUND(__GNUC__, == 3) || (BOOST_WORKAROUND(__GNUC__, == 4) && __GNUC_MINOR__ == 0) // work around GCC bug template<typename Tag, typename Args, long N> struct is_callable<proto::expr<Tag, Args, N> > @@ -398,11 +398,7 @@ namespace boost { namespace proto /// \return \c e /// \throw nothrow BOOST_FORCEINLINE - #ifdef BOOST_PROTO_STRICT_RESULT_OF - result_type - #else - typename impl::expr_param - #endif + BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, typename impl::expr_param) operator ()( typename impl::expr_param e , typename impl::state_param @@ -432,7 +428,7 @@ namespace boost { namespace proto template<typename Expr, typename State, typename Data> struct impl - : detail::pass_through_impl<if_else_, Expr, State, Data> + : detail::pass_through_impl<if_else_, deduce_domain, Expr, State, Data> {}; /// INTERNAL ONLY @@ -469,11 +465,7 @@ namespace boost { namespace proto /// \return \c e /// \throw nothrow BOOST_FORCEINLINE - #ifdef BOOST_PROTO_STRICT_RESULT_OF - result_type - #else - typename impl::expr_param - #endif + BOOST_PROTO_RETURN_TYPE_STRICT_LOOSE(result_type, typename impl::expr_param) operator ()( typename impl::expr_param e , typename impl::state_param @@ -507,7 +499,7 @@ namespace boost { namespace proto template<typename Expr, typename State, typename Data> struct impl - : detail::pass_through_impl<unary_expr, Expr, State, Data> + : detail::pass_through_impl<unary_expr, deduce_domain, Expr, State, Data> {}; /// INTERNAL ONLY @@ -533,7 +525,7 @@ namespace boost { namespace proto template<typename Expr, typename State, typename Data> struct impl - : detail::pass_through_impl<binary_expr, Expr, State, Data> + : detail::pass_through_impl<binary_expr, deduce_domain, Expr, State, Data> {}; /// INTERNAL ONLY @@ -554,7 +546,7 @@ namespace boost { namespace proto \ template<typename Expr, typename State, typename Data> \ struct impl \ - : detail::pass_through_impl<Op, Expr, State, Data> \ + : detail::pass_through_impl<Op, deduce_domain, Expr, State, Data> \ {}; \ \ typedef proto::tag::Op proto_tag; \ @@ -572,7 +564,7 @@ namespace boost { namespace proto \ template<typename Expr, typename State, typename Data> \ struct impl \ - : detail::pass_through_impl<Op, Expr, State, Data> \ + : detail::pass_through_impl<Op, deduce_domain, Expr, State, Data> \ {}; \ \ typedef proto::tag::Op proto_tag; \ @@ -1145,7 +1137,7 @@ namespace boost { namespace proto /// \brief Return the value stored within the specified Proto /// terminal expression. /// - /// Return the the value stored within the specified Proto + /// Return the value stored within the specified Proto /// terminal expression. The value is returned by /// reference. /// @@ -1259,7 +1251,7 @@ namespace boost { namespace proto }} -#if defined(_MSC_VER) && (_MSC_VER >= 1020) +#if defined(_MSC_VER) # pragma warning(pop) #endif |