| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | ////////////////////////////////////////////////////////////////////////////////// \file null.hpp/// Definintion of null_context\<\>, an evaluation context for/// proto::eval() that simply evaluates each child expression, doesn't/// combine the results at all, and returns void.////  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)#ifndef BOOST_PROTO_CONTEXT_NULL_HPP_EAN_06_24_2007#define BOOST_PROTO_CONTEXT_NULL_HPP_EAN_06_24_2007#include <boost/preprocessor/iteration/iterate.hpp>#include <boost/preprocessor/repetition/repeat.hpp>#include <boost/proto/proto_fwd.hpp>#include <boost/proto/eval.hpp>#include <boost/proto/traits.hpp>namespace boost { namespace proto { namespace context{    template<        typename Expr      , typename Context      , long Arity          // = Expr::proto_arity_c    >    struct null_eval    {};    template<typename Expr, typename Context>    struct null_eval<Expr, Context, 0>    {        typedef void result_type;        void operator()(Expr &, Context &) const        {}    };    // Additional specializations generated by the preprocessor    #include <boost/proto/context/detail/null_eval.hpp>    /// null_context    ///    struct null_context    {        /// null_context::eval        ///        template<typename Expr, typename ThisContext = null_context const>        struct eval          : null_eval<Expr, ThisContext>        {};    };}}}#endif
 |