Ticket #4336: common_terminals.hpp.diff

File common_terminals.hpp.diff, 3.4 KB (added by Andrey Semashev, 12 years ago)

A patch for common_terminals.hpp adding the encoding_specific trait

  • boost/spirit/home/support/common_terminals.hpp

     
    1818#include <boost/spirit/home/support/char_encoding/ascii.hpp>
    1919#include <boost/spirit/home/support/char_encoding/iso8859_1.hpp>
    2020#include <boost/spirit/home/support/char_class.hpp>
     21#include <boost/spirit/home/support/detail/encoding_specific_impl.hpp>
    2122#include <boost/mpl/vector.hpp>
    2223
    2324#if defined(BOOST_SPIRIT_UNICODE)
     
    138139        struct attr_cast {};
    139140    }
    140141
     142    // A trait to provide access to the encoding-specific placeholders
     143    template< typename EncodingT >
     144    struct encoding_specific;
     145
    141146}}
    142147
    143148///////////////////////////////////////////////////////////////////////////////
     
    196201        BOOST_SPIRIT_CHAR_CODE(upper, spirit::char_encoding::charset)           \
    197202        BOOST_SPIRIT_CHAR_CODE(lowernum, spirit::char_encoding::charset)        \
    198203        BOOST_SPIRIT_CHAR_CODE(uppernum, spirit::char_encoding::charset)        \
    199     }}}                                                                         \
     204    }                                                                           \
     205                                                                                \
     206    template< >                                                                 \
     207    struct encoding_specific< spirit::char_encoding::charset > :                \
     208        public detail::encoding_specific_impl<                                  \
     209            charset::char_type,                                                 \
     210            charset::string_type,                                               \
     211            charset::alnum_type,                                                \
     212            charset::alpha_type,                                                \
     213            charset::blank_type,                                                \
     214            charset::cntrl_type,                                                \
     215            charset::digit_type,                                                \
     216            charset::graph_type,                                                \
     217            charset::print_type,                                                \
     218            charset::punct_type,                                                \
     219            charset::space_type,                                                \
     220            charset::xdigit_type,                                               \
     221            charset::no_case_type,                                              \
     222            charset::lower_type,                                                \
     223            charset::upper_type,                                                \
     224            charset::lowernum_type,                                             \
     225            charset::uppernum_type                                              \
     226        >                                                                       \
     227    {                                                                           \
     228    };                                                                          \
     229                                                                                \
     230    }}                                                                          \
    200231    /***/
    201232
    202233BOOST_SPIRIT_DEFINE_CHAR_CODES(ascii)