[英]C++ template specialization
你好! 有人知道实现或模仿以下行为的方法吗? (此代码导致编译时错误)。
例如,我想仅在派生类中添加特定的模板特化。
struct Base {
template <typename T> void Method(T a) {
T b;
}
template <> void Method<int>(int a) {
float c;
}
};
struct Derived : public Base {
template <> void Method<float>(float a) {
float x;
}
};
怎么过载
struct Base {
template <typename T> void Method(T a) {
T b;
}
void Method(int a) {
float c;
}
};
struct Derived : public Base {
using Base::Method;
void Method(float a) {
float x;
}
};
无法像示例中那样添加显式特化。 此外,您的Base类格式不正确,因为您必须在类的范围之外定义任何显式特化
struct Base {
template <typename T> void Method(T a) {
T b;
}
};
template <> void Base::Method<int>(int a) {
float c;
}
所有显式特化都需要将模板的名称赋予特殊性,或者与模板位于同一范围内。 你不能像这样在Derived类中编写显式的特化。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.