Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:50:19

0001     ///////////////////////////////////////////////////////////////////////////////
0002     /// \file null_eval.hpp
0003     /// Contains specializations of the null_eval\<\> class template.
0004     //
0005     //  Copyright 2008 Eric Niebler. Distributed under the Boost
0006     //  Software License, Version 1.0. (See accompanying file
0007     //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0008     template<typename Expr, typename Context>
0009     struct null_eval<Expr, Context, 1>
0010     {
0011         typedef void result_type;
0012         void operator ()(Expr &expr, Context &ctx) const
0013         {
0014             proto::eval(proto::child_c< 0>(expr), ctx);
0015         }
0016     };
0017     template<typename Expr, typename Context>
0018     struct null_eval<Expr, Context, 2>
0019     {
0020         typedef void result_type;
0021         void operator ()(Expr &expr, Context &ctx) const
0022         {
0023             proto::eval(proto::child_c< 0>(expr), ctx); proto::eval(proto::child_c< 1>(expr), ctx);
0024         }
0025     };
0026     template<typename Expr, typename Context>
0027     struct null_eval<Expr, Context, 3>
0028     {
0029         typedef void result_type;
0030         void operator ()(Expr &expr, Context &ctx) const
0031         {
0032             proto::eval(proto::child_c< 0>(expr), ctx); proto::eval(proto::child_c< 1>(expr), ctx); proto::eval(proto::child_c< 2>(expr), ctx);
0033         }
0034     };
0035     template<typename Expr, typename Context>
0036     struct null_eval<Expr, Context, 4>
0037     {
0038         typedef void result_type;
0039         void operator ()(Expr &expr, Context &ctx) const
0040         {
0041             proto::eval(proto::child_c< 0>(expr), ctx); proto::eval(proto::child_c< 1>(expr), ctx); proto::eval(proto::child_c< 2>(expr), ctx); proto::eval(proto::child_c< 3>(expr), ctx);
0042         }
0043     };
0044     template<typename Expr, typename Context>
0045     struct null_eval<Expr, Context, 5>
0046     {
0047         typedef void result_type;
0048         void operator ()(Expr &expr, Context &ctx) const
0049         {
0050             proto::eval(proto::child_c< 0>(expr), ctx); proto::eval(proto::child_c< 1>(expr), ctx); proto::eval(proto::child_c< 2>(expr), ctx); proto::eval(proto::child_c< 3>(expr), ctx); proto::eval(proto::child_c< 4>(expr), ctx);
0051         }
0052     };
0053     template<typename Expr, typename Context>
0054     struct null_eval<Expr, Context, 6>
0055     {
0056         typedef void result_type;
0057         void operator ()(Expr &expr, Context &ctx) const
0058         {
0059             proto::eval(proto::child_c< 0>(expr), ctx); proto::eval(proto::child_c< 1>(expr), ctx); proto::eval(proto::child_c< 2>(expr), ctx); proto::eval(proto::child_c< 3>(expr), ctx); proto::eval(proto::child_c< 4>(expr), ctx); proto::eval(proto::child_c< 5>(expr), ctx);
0060         }
0061     };
0062     template<typename Expr, typename Context>
0063     struct null_eval<Expr, Context, 7>
0064     {
0065         typedef void result_type;
0066         void operator ()(Expr &expr, Context &ctx) const
0067         {
0068             proto::eval(proto::child_c< 0>(expr), ctx); proto::eval(proto::child_c< 1>(expr), ctx); proto::eval(proto::child_c< 2>(expr), ctx); proto::eval(proto::child_c< 3>(expr), ctx); proto::eval(proto::child_c< 4>(expr), ctx); proto::eval(proto::child_c< 5>(expr), ctx); proto::eval(proto::child_c< 6>(expr), ctx);
0069         }
0070     };
0071     template<typename Expr, typename Context>
0072     struct null_eval<Expr, Context, 8>
0073     {
0074         typedef void result_type;
0075         void operator ()(Expr &expr, Context &ctx) const
0076         {
0077             proto::eval(proto::child_c< 0>(expr), ctx); proto::eval(proto::child_c< 1>(expr), ctx); proto::eval(proto::child_c< 2>(expr), ctx); proto::eval(proto::child_c< 3>(expr), ctx); proto::eval(proto::child_c< 4>(expr), ctx); proto::eval(proto::child_c< 5>(expr), ctx); proto::eval(proto::child_c< 6>(expr), ctx); proto::eval(proto::child_c< 7>(expr), ctx);
0078         }
0079     };
0080     template<typename Expr, typename Context>
0081     struct null_eval<Expr, Context, 9>
0082     {
0083         typedef void result_type;
0084         void operator ()(Expr &expr, Context &ctx) const
0085         {
0086             proto::eval(proto::child_c< 0>(expr), ctx); proto::eval(proto::child_c< 1>(expr), ctx); proto::eval(proto::child_c< 2>(expr), ctx); proto::eval(proto::child_c< 3>(expr), ctx); proto::eval(proto::child_c< 4>(expr), ctx); proto::eval(proto::child_c< 5>(expr), ctx); proto::eval(proto::child_c< 6>(expr), ctx); proto::eval(proto::child_c< 7>(expr), ctx); proto::eval(proto::child_c< 8>(expr), ctx);
0087         }
0088     };
0089     template<typename Expr, typename Context>
0090     struct null_eval<Expr, Context, 10>
0091     {
0092         typedef void result_type;
0093         void operator ()(Expr &expr, Context &ctx) const
0094         {
0095             proto::eval(proto::child_c< 0>(expr), ctx); proto::eval(proto::child_c< 1>(expr), ctx); proto::eval(proto::child_c< 2>(expr), ctx); proto::eval(proto::child_c< 3>(expr), ctx); proto::eval(proto::child_c< 4>(expr), ctx); proto::eval(proto::child_c< 5>(expr), ctx); proto::eval(proto::child_c< 6>(expr), ctx); proto::eval(proto::child_c< 7>(expr), ctx); proto::eval(proto::child_c< 8>(expr), ctx); proto::eval(proto::child_c< 9>(expr), ctx);
0096         }
0097     };