假设我有一个模板函数和两个类
class animal {
}
class person {
}
template<class T>
void foo() {
if (T is animal) {
kill();
}
}
如何检查 T 是动物?我不想在运行时进行检查。谢谢
原文由 WhatABeautifulWorld 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设我有一个模板函数和两个类
class animal {
}
class person {
}
template<class T>
void foo() {
if (T is animal) {
kill();
}
}
如何检查 T 是动物?我不想在运行时进行检查。谢谢
原文由 WhatABeautifulWorld 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
使用
is_same
:通常,这是一个完全不可行的设计,但你真的想 _专攻_:
另请注意,具有显式(非推导)参数的函数模板是不寻常的。这并非闻所未闻,但通常有更好的方法。