std::basic_string specialization

std::basic_string specialization

本文关键字:specialization string basic std      更新时间:2023-10-16

我只需要重写std::basic_string中的length函数,因为它不适合特定平台上的自定义字符类型。这是CustomString 的当前声明

typedef STL::basic_string<CustomChar, STL::char_traits<CustomChar>, STL::allocator<CustomChar> > CustomString;

我需要一个类,它的行为与CustomString一样,但长度函数发生了变化。

您需要专门化std::char_traits结构并覆盖其static size_t length(const char_type* s);函数才能做到这一点。

那么,在实例化basic_string时,您甚至不需要指定所有的模板参数。以下定义就足够了:

typedef std::basic_string<CustomChar> CustomString;