std::basic_string specialization
std::basic_string specialization
我只需要重写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;
相关文章:
- std::get like (partial) template specialization
- 函数模板(它是类模板的成员)的显式专用化会产生"partial specialization is not allowed"错误,为什么?
- 如何使用泛型在 Swift 中实现"C++-ish template specialization"?
- VS 编译器错误 C2752 ( "more than one partial specialization matches" ) 在 STL 中
- "Explicit specialization of std::iterator_traits<char *> after instantiation"(咕)
- Using Partial Specialization in C++11
- 如何新建Template Specialization Class对象
- 这个模板"specialization"代码在做什么,为什么它可以编译但不能按预期工作?
- 错误:"explicit specialization requires 'template <>'"
- 为什么这段代码会给出错误,"template specialization requires 'template<>'"?
- std::basic_string specialization
- 帮我解决"template parameters not used in partial specialization"
- C++什么时候需要或需要"explicit specialization"?
- C++:嵌套模板类错误"explicit specialization in non-namespace scope"
- 未调用非模板成员函数的显式Specialization