Mercurial > hg > vamp-build-and-test
view DEPENDENCIES/generic/include/boost/phoenix/object/construct.hpp @ 130:d659ed4b9197
Another point to run repoint
author | Chris Cannam |
---|---|
date | Thu, 07 Feb 2019 11:48:53 +0000 |
parents | 2665513ce2d3 |
children |
line wrap: on
line source
/*============================================================================== Copyright (c) 2001-2010 Joel de Guzman Copyright (c) 2010 Thomas Heller Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) ==============================================================================*/ #ifndef BOOST_PHOENIX_OBJECT_CONSTRUCT_HPP #define BOOST_PHOENIX_OBJECT_CONSTRUCT_HPP #include <boost/phoenix/core/limits.hpp> #include <boost/phoenix/core/call.hpp> #include <boost/phoenix/core/expression.hpp> #include <boost/phoenix/core/meta_grammar.hpp> #include <boost/phoenix/object/detail/target.hpp> #include <boost/phoenix/support/iterate.hpp> #include <boost/preprocessor/repetition/repeat_from_to.hpp> BOOST_PHOENIX_DEFINE_EXPRESSION_VARARG( (boost)(phoenix)(construct) , (proto::terminal<detail::target<proto::_> >) (meta_grammar) , BOOST_PHOENIX_COMPOSITE_LIMIT ) namespace boost { namespace phoenix { struct construct_eval { template <typename Sig> struct result; template <typename This, typename A0, typename Context> struct result<This(A0, Context)> : detail::result_of::target<A0> { }; template <typename Target, typename Context> typename detail::result_of::target<Target>::type operator()(Target, Context const &) const { return typename detail::result_of::target<Target>::type(); } // Bring in the rest #include <boost/phoenix/object/detail/construct_eval.hpp> }; template <typename Dummy> struct default_actions::when<rule::construct, Dummy> : call<construct_eval, Dummy> {}; template <typename T> inline typename expression::construct<detail::target<T> >::type const construct() { return expression:: construct<detail::target<T> >:: make(detail::target<T>()); } // Bring in the rest #include <boost/phoenix/object/detail/construct.hpp> }} #endif