Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-11-15 09:24:01

0001 /*==============================================================================
0002     Copyright (c) 2001-2010 Joel de Guzman
0003     Copyright (c) 2010 Thomas Heller
0004 
0005     Distributed under the Boost Software License, Version 1.0. (See accompanying
0006     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0007 ==============================================================================*/
0008 #ifndef BOOST_PHOENIX_OPERATOR_IF_ELSE_HPP
0009 #define BOOST_PHOENIX_OPERATOR_IF_ELSE_HPP
0010 
0011 #include <boost/phoenix/core/limits.hpp>
0012 #include <boost/phoenix/core/meta_grammar.hpp>
0013 #include <boost/phoenix/core/expression.hpp>
0014 #include <boost/proto/operators.hpp>
0015 
0016 namespace boost { namespace phoenix
0017 {
0018     namespace tag
0019     {
0020         typedef proto::tag::if_else_ if_else_operator;
0021     }
0022 
0023     namespace expression
0024     {
0025         template <typename A0, typename A1, typename A2>
0026         struct if_else_operator
0027             : expr<tag::if_else_operator, A0, A1, A2>
0028         {};
0029     }
0030 
0031     namespace rule
0032     {
0033         struct if_else_operator
0034             : expression::if_else_operator<
0035                 meta_grammar
0036               , meta_grammar
0037               , meta_grammar
0038             >
0039         {};
0040     }
0041 
0042     template <typename Dummy>
0043     struct meta_grammar::case_<tag::if_else_operator, Dummy>
0044         : enable_rule<rule::if_else_operator, Dummy>
0045     {};
0046 
0047     using proto::if_else;
0048 }}
0049 
0050 #endif