我想在基于模板参数的模板中略有不同的逻辑。我该如何键入检查模板参数?模板类型检查参数C++,不同类型的执行路径
我有我很惊讶以下不工作:
class Bar {
Bar() {}
}
template <typename T>
void Foo(const &T a) {
if (!std::is_same<T, Bar>::value) {
// Do things that will fail for type Bar e.g.
a.Fail();
}
}
我不希望使用模板特在现实模板特殊化结束共享了大量的代码为我的特定目的(目前正在代码使用模板特)
目前在编译过程失败:"no member "Fail" in "Bar"
模板专门化是正确的解决方案。有用的提示:“模板专业化”并不意味着“重复整个庞大的功能,只是改变其中的一小部分”。 –