summaryrefslogtreecommitdiff
path: root/boost/phoenix/object/new.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/phoenix/object/new.hpp')
-rw-r--r--boost/phoenix/object/new.hpp18
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