124 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			124 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								    ///////////////////////////////////////////////////////////////////////////////
							 | 
						||
| 
								 | 
							
								    /// \file or_n.hpp
							 | 
						||
| 
								 | 
							
								    /// Definitions of or_N
							 | 
						||
| 
								 | 
							
								    //
							 | 
						||
| 
								 | 
							
								    //  Copyright 2008 Eric Niebler. 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)
							 | 
						||
| 
								 | 
							
								    template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1>
							 | 
						||
| 
								 | 
							
								    struct or_2
							 | 
						||
| 
								 | 
							
								      : mpl::bool_<matches_<Expr, BasicExpr, typename G1::proto_grammar>::value>
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef G1 which;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    template<typename Expr, typename BasicExpr , typename G0 , typename G1>
							 | 
						||
| 
								 | 
							
								    struct or_2<true, Expr, BasicExpr, G0 , G1>
							 | 
						||
| 
								 | 
							
								      : mpl::true_
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef G0 which;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2>
							 | 
						||
| 
								 | 
							
								    struct or_3
							 | 
						||
| 
								 | 
							
								      : or_2<
							 | 
						||
| 
								 | 
							
								            matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
							 | 
						||
| 
								 | 
							
								          , Expr, BasicExpr, G1 , G2
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {};
							 | 
						||
| 
								 | 
							
								    template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2>
							 | 
						||
| 
								 | 
							
								    struct or_3<true, Expr, BasicExpr, G0 , G1 , G2>
							 | 
						||
| 
								 | 
							
								      : mpl::true_
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef G0 which;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3>
							 | 
						||
| 
								 | 
							
								    struct or_4
							 | 
						||
| 
								 | 
							
								      : or_3<
							 | 
						||
| 
								 | 
							
								            matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
							 | 
						||
| 
								 | 
							
								          , Expr, BasicExpr, G1 , G2 , G3
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {};
							 | 
						||
| 
								 | 
							
								    template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3>
							 | 
						||
| 
								 | 
							
								    struct or_4<true, Expr, BasicExpr, G0 , G1 , G2 , G3>
							 | 
						||
| 
								 | 
							
								      : mpl::true_
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef G0 which;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4>
							 | 
						||
| 
								 | 
							
								    struct or_5
							 | 
						||
| 
								 | 
							
								      : or_4<
							 | 
						||
| 
								 | 
							
								            matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
							 | 
						||
| 
								 | 
							
								          , Expr, BasicExpr, G1 , G2 , G3 , G4
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {};
							 | 
						||
| 
								 | 
							
								    template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4>
							 | 
						||
| 
								 | 
							
								    struct or_5<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4>
							 | 
						||
| 
								 | 
							
								      : mpl::true_
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef G0 which;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5>
							 | 
						||
| 
								 | 
							
								    struct or_6
							 | 
						||
| 
								 | 
							
								      : or_5<
							 | 
						||
| 
								 | 
							
								            matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
							 | 
						||
| 
								 | 
							
								          , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {};
							 | 
						||
| 
								 | 
							
								    template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5>
							 | 
						||
| 
								 | 
							
								    struct or_6<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5>
							 | 
						||
| 
								 | 
							
								      : mpl::true_
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef G0 which;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6>
							 | 
						||
| 
								 | 
							
								    struct or_7
							 | 
						||
| 
								 | 
							
								      : or_6<
							 | 
						||
| 
								 | 
							
								            matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
							 | 
						||
| 
								 | 
							
								          , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {};
							 | 
						||
| 
								 | 
							
								    template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6>
							 | 
						||
| 
								 | 
							
								    struct or_7<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6>
							 | 
						||
| 
								 | 
							
								      : mpl::true_
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef G0 which;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7>
							 | 
						||
| 
								 | 
							
								    struct or_8
							 | 
						||
| 
								 | 
							
								      : or_7<
							 | 
						||
| 
								 | 
							
								            matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
							 | 
						||
| 
								 | 
							
								          , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {};
							 | 
						||
| 
								 | 
							
								    template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7>
							 | 
						||
| 
								 | 
							
								    struct or_8<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7>
							 | 
						||
| 
								 | 
							
								      : mpl::true_
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef G0 which;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7 , typename G8>
							 | 
						||
| 
								 | 
							
								    struct or_9
							 | 
						||
| 
								 | 
							
								      : or_8<
							 | 
						||
| 
								 | 
							
								            matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
							 | 
						||
| 
								 | 
							
								          , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {};
							 | 
						||
| 
								 | 
							
								    template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7 , typename G8>
							 | 
						||
| 
								 | 
							
								    struct or_9<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8>
							 | 
						||
| 
								 | 
							
								      : mpl::true_
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef G0 which;
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    template<bool B, typename Expr, typename BasicExpr, typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7 , typename G8 , typename G9>
							 | 
						||
| 
								 | 
							
								    struct or_10
							 | 
						||
| 
								 | 
							
								      : or_9<
							 | 
						||
| 
								 | 
							
								            matches_<Expr, BasicExpr, typename G1::proto_grammar>::value
							 | 
						||
| 
								 | 
							
								          , Expr, BasicExpr, G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8 , G9
							 | 
						||
| 
								 | 
							
								        >
							 | 
						||
| 
								 | 
							
								    {};
							 | 
						||
| 
								 | 
							
								    template<typename Expr, typename BasicExpr , typename G0 , typename G1 , typename G2 , typename G3 , typename G4 , typename G5 , typename G6 , typename G7 , typename G8 , typename G9>
							 | 
						||
| 
								 | 
							
								    struct or_10<true, Expr, BasicExpr, G0 , G1 , G2 , G3 , G4 , G5 , G6 , G7 , G8 , G9>
							 | 
						||
| 
								 | 
							
								      : mpl::true_
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        typedef G0 which;
							 | 
						||
| 
								 | 
							
								    };
							 |