12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*=============================================================================
- Copyright (c) 2001-2007 Joel de Guzman
- 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 PHOENIX_STATEMENT_SEQUENCE_HPP
- #define PHOENIX_STATEMENT_SEQUENCE_HPP
- #include <boost/spirit/home/phoenix/core/composite.hpp>
- #include <boost/spirit/home/phoenix/core/compose.hpp>
- namespace boost { namespace phoenix
- {
- struct sequence_eval
- {
- template <typename Env, typename A0, typename A1>
- struct result
- {
- typedef void type;
- };
- template <typename RT, typename Env, typename A0, typename A1>
- static void
- eval(Env const& env, A0& a0, A1& a1)
- {
- a0.eval(env);
- a1.eval(env);
- }
- };
-
- namespace detail
- {
- template <typename BaseT0, typename BaseT1>
- struct comma_result
- {
- typedef actor<
- typename as_composite<
- sequence_eval
- , actor<BaseT0>
- , actor<BaseT1>
- >::type
- > type;
- };
- }
- template <typename BaseT0, typename BaseT1>
- inline typename detail::comma_result<BaseT0, BaseT1>::type
- operator,(actor<BaseT0> const& a0, actor<BaseT1> const& a1)
- {
- return compose<sequence_eval>(a0, a1);
- }
- }}
- #endif
|