Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-19 09:47:54

0001 /*=============================================================================
0002     Copyright (c) 2001-2011 Joel de Guzman
0003 
0004     Distributed under the Boost Software License, Version 1.0. (See accompanying
0005     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
0006 ==============================================================================*/
0007 #if !defined(BOOST_SPIRIT_LAZY_NOVEMBER_04_2008_1157AM)
0008 #define BOOST_SPIRIT_LAZY_NOVEMBER_04_2008_1157AM
0009 
0010 #if defined(_MSC_VER)
0011 #pragma once
0012 #endif
0013 
0014 #include <boost/spirit/home/support/modify.hpp>
0015 #include <boost/spirit/home/support/detail/is_spirit_tag.hpp>
0016 #include <boost/proto/traits.hpp>
0017 
0018 namespace boost { namespace phoenix
0019 {
0020     template <typename Expr>
0021     struct actor;
0022 }}
0023 
0024 namespace boost { namespace spirit
0025 {
0026     template <typename Eval>
0027     typename proto::terminal<phoenix::actor<Eval> >::type
0028     lazy(phoenix::actor<Eval> const& f)
0029     {
0030         return proto::terminal<phoenix::actor<Eval> >::type::make(f);
0031     }
0032 
0033     namespace tag
0034     {
0035         struct lazy_eval 
0036         {
0037             BOOST_SPIRIT_IS_TAG()
0038         };
0039     }
0040 
0041     template <typename Domain>
0042     struct is_modifier_directive<Domain, tag::lazy_eval>
0043       : mpl::true_ {};
0044 }}
0045 
0046 #endif