2011-07-01 50 views
0

这涉及到:C++的std :: basic_string的/ char_traits专业化

std::basic_string specializationCircumventing template specialization

我试图解决从std::basic_string specialization,但问题是,CustomChar是wchar_t的一个typedef,我有重新定义(与std的专业化冲突)。当我不允许更改CustomChar typedef时,如何避免使用chart_traits?

+2

您仍然可以使用'wchar_t'作为'std :: basic_string'的'charT'模板参数,从而提供一个可选的'traits'类(即除std :: char_traits特殊化之外的其他类)。 –

+0

它的工作原理,谢谢 – Felics

+0

这就是为什么C++应该在户外拍摄。 –

回答

0

这是由查尔斯·贝利提供的评论答案:

可以提供一个可选的特性类(即东西比一个std :: char_traits专业化等),而仍然使用的wchar_t为图表模板参数为std :: basic_string

0

如果存在已知的先前实例,则可以使用Boost's/C++ 0x的disable_if来禁用,如charwchar_t的情况。