2015-10-08 33 views
2

让我们假设我有一个特殊的字符类,myChar,这是从用作std::basic_string<>特现有标准字符类(charwchar_tchar16_tchar32_t)不同。定制专业化<>`

我们还假设std::basic_string<myChar>提供的功能几乎是我需要的功能是。除了模板已经提供的功能之外,我只想要两个,三个功能。

我们还假设我对编程模板(而不是使用它们,我整天都在使用它)有一定的经验。

我该如何去扩展一个标准模板,扩展它的附加功能?

我有一种感觉,它应该只是几行的问题,但我无法弄清楚。

+0

你研究过“矢量”的实现吗?并且认为它包含“只有几行”的额外? –

+0

@KerrekSB:不,我没有,因为我知道'vector < bool >'变化更多*内部*,而不仅仅是添加几个函数,*外部*,因此我认为它并不适用于对我的问题。 – DevSolar

+3

专业化是一个全新的课程,不幸的是你必须再次实现* everything *。然而,如果你只是有一个新的字符类型 - 没有任何额外的字符串函数 - 正确的地方是专门化'char_traits ',一个更小的类。 –

回答

1

正如Bo Persson所指出的那样,没有办法以这种方式部分扩展模板而无需重新实现所有模板。