部分类模板特化的语法
在下文中,我是否忘记了部分专用类 NumInfo 的一些正确语法,或者甚至可以做到这一点?
template<typename T>
struct NumInfo {
T x;
T y;
void Print();
};
template<typename T>
void NumInfo <T>::Print() {
/*.....*/
}
template<typename T>
struct NumInfo <float> {
T x;
float y;
void Print();
};
template<typename T>
void NumInfo <float>::Print() {
/*.....*/
}
In the following, am I forgetting some correct syntax for partial specializing class NumInfo or is it even possible to do that?
template<typename T>
struct NumInfo {
T x;
T y;
void Print();
};
template<typename T>
void NumInfo <T>::Print() {
/*.....*/
}
template<typename T>
struct NumInfo <float> {
T x;
float y;
void Print();
};
template<typename T>
void NumInfo <float>::Print() {
/*.....*/
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您的设计有一个问题 - 现在您有多个具有相同名称
NumInfo
和不同定义(取决于T
)的类。要解决这个问题,您需要第二个模板参数,如下所示:Your design has a problem -- right now you have multiple classes with the same name
NumInfo<float>
and different definitions (depending onT
). To fix that, you'll need a second template parameter, like this: