【发布时间】:2011-07-02 18:09:20
【问题描述】:
我编写了以下代码来确定一个类型是否是std::basic_string 的实例化:
template <typename T>
struct is_string
{
enum { value = false };
};
template <typename charT, typename traits, typename Alloc>
struct is_string<std::basic_string<charT, traits, Alloc> >
{
enum { value = true };
};
有没有更简洁的方法来实现这一点?
【问题讨论】:
-
这是否正确检测到
basic_string的第二个和第三个模板参数与默认值不同的实例? -
@Steve 好点,希望已修复,请参阅我的编辑。
-
非常好。我喜欢第二种解决方案。
标签: c++ string templates metaprogramming template-meta-programming