【发布时间】:2014-12-02 12:13:37
【问题描述】:
以下内容不起作用:
// case one:
struct MyClass {
int x;
};
template <MyClass name>
void foo() {
}
但如果我把它作为参考,它会起作用:
// case two:
struct MyClass {
int x;
};
template <MyClass &name>
void foo() {
}
我是否需要传递一个 MyClass 的 constant 对象,以便它与类一起使用以防万一?
【问题讨论】:
-
在这种情况下为什么需要模板?
-
@πάνταῥεῖ:我在问为什么不允许这样做..如果您可以评论它,请因为问题已经结束。就像我知道模板是在编译时推导出来的,但是类对象究竟是一个问题?
-
副本中的第二个答案很好地描述了为什么不允许使用类类型而不是指针或类引用。