Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-31 10:02:38

0001 /*=============================================================================
0002     Copyright (c) 2019 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_X3_PSEUDO_ATTRIBUTE_OF_MAY_15_2019_1012PM)
0008 #define BOOST_SPIRIT_X3_PSEUDO_ATTRIBUTE_OF_MAY_15_2019_1012PM
0009 
0010 #include <utility>
0011 
0012 namespace boost { namespace spirit { namespace x3 { namespace traits
0013 {
0014     ///////////////////////////////////////////////////////////////////////////
0015     // Pseudo attributes are placeholders for parsers that can only know
0016     // its actual attribute at parse time. This trait customization point
0017     // provides a mechanism to convert the trait to the actual trait at
0018     // parse time.
0019     ///////////////////////////////////////////////////////////////////////////
0020     template <typename Context, typename Attribute, typename Iterator
0021       , typename Enable = void>
0022     struct pseudo_attribute
0023     {
0024         using attribute_type = Attribute;
0025         using type = Attribute;
0026 
0027         static type&& call(Iterator&, Iterator const&, attribute_type&& attribute)
0028         {
0029             return std::forward<type>(attribute);
0030         }
0031     };
0032 }}}}
0033 
0034 #endif