diff options
Diffstat (limited to 'boost/phoenix/object/new.hpp')
-rw-r--r-- | boost/phoenix/object/new.hpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/boost/phoenix/object/new.hpp b/boost/phoenix/object/new.hpp index a2ec81004c..5cb9ed5ea3 100644 --- a/boost/phoenix/object/new.hpp +++ b/boost/phoenix/object/new.hpp @@ -16,12 +16,16 @@ #include <boost/phoenix/support/iterate.hpp> #include <boost/preprocessor/repetition/repeat_from_to.hpp> +#ifdef BOOST_PHOENIX_NO_VARIADIC_EXPRESSION +# include <boost/phoenix/object/detail/cpp03/new_expr.hpp> +#else BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG( (boost)(phoenix)(new_) , (proto::terminal<detail::target<proto::_> >) (meta_grammar) - , BOOST_PHOENIX_COMPOSITE_LIMIT + , _ ) +#endif namespace boost { namespace phoenix { @@ -30,6 +34,7 @@ namespace boost { namespace phoenix template <typename Sig> struct result; +#if defined(BOOST_PHOENIX_NO_VARIADIC_OBJECT) template <typename This, typename A0, typename Context> struct result<This(A0, Context)> { @@ -45,7 +50,10 @@ namespace boost { namespace phoenix } // Bring in the rest - #include <boost/phoenix/object/detail/new_eval.hpp> + #include <boost/phoenix/object/detail/cpp03/new_eval.hpp> +#else + // TODO: +#endif }; template <typename Dummy> @@ -53,6 +61,7 @@ namespace boost { namespace phoenix : call<new_eval, Dummy> {}; +#if defined(BOOST_PHOENIX_NO_VARIADIC_OBJECT) template <typename T> inline typename expression::new_<detail::target<T> >::type const @@ -65,7 +74,10 @@ namespace boost { namespace phoenix } // Bring in the rest - #include <boost/phoenix/object/detail/new.hpp> + #include <boost/phoenix/object/detail/cpp03/new.hpp> +#else + // TODO: +#endif }} #endif |