// char_traits.hpp // Copyright (c) 2007-2009 Ben Hanson (http://www.benhanson.net/) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_LEXER_CHAR_TRAITS_H #define BOOST_LEXER_CHAR_TRAITS_H // Make sure wchar_t is defined #include namespace boost { namespace lexer { template struct char_traits { typedef CharT char_type; typedef CharT index_type; static index_type call (CharT ch) { return ch; } }; template<> struct char_traits { typedef char char_type; typedef unsigned char index_type; static index_type call (char ch) { return static_cast(ch); } }; template<> struct char_traits { typedef wchar_t char_type; typedef wchar_t index_type; static index_type call (wchar_t ch) { return ch; } }; } } #endif