// 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 <string> | |
namespace boost | |
{ | |
namespace lexer | |
{ | |
template<typename CharT> | |
struct char_traits | |
{ | |
typedef CharT char_type; | |
typedef CharT index_type; | |
static index_type call (CharT ch) | |
{ | |
return ch; | |
} | |
}; | |
template<> | |
struct char_traits<char> | |
{ | |
typedef char char_type; | |
typedef unsigned char index_type; | |
static index_type call (char ch) | |
{ | |
return static_cast<index_type>(ch); | |
} | |
}; | |
template<> | |
struct char_traits<wchar_t> | |
{ | |
typedef wchar_t char_type; | |
typedef wchar_t index_type; | |
static index_type call (wchar_t ch) | |
{ | |
return ch; | |
} | |
}; | |
} | |
} | |
#endif |