gpt4 book ai didi

c++ - 满足条件的多种类型的模板类特化

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:38:54 24 4
gpt4 key购买 nike

如果我有一个模板类,像这样:

template<typename T>
class Type { /* ... */ };

在不以任何方式修改 Type 的情况下,是否有一种简单的方法可以针对 所有 匹配编译时条件的此类类型专门化它?例如,如果我想为所有整数类型专门化 Type,我想做这样的事情(只有有效的事情,即):

template<typename T>
class Type<std::enable_if<std::is_integral<T>, T>::type> { /* ... */ };

最佳答案

这应该有效:

template<typename T, bool B = std::is_integral<T>::value>
class Type;

// doesn't have to be a specialization, although I think it's more clear this way
template<typename T>
class Type<T, false> { /* ... */ };

template<typename T>
class Type<T, true> { /* ... */ };

关于c++ - 满足条件的多种类型的模板类特化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8595157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com