【发布时间】:2009-04-28 12:21:11
【问题描述】:
有时有效,有时无效:
template <class T>
void f(T t) {}
template <class T>
class MyClass {
public:
MyClass(T t) {}
};
void test () {
f<int>(5);
MyClass<int> mc(5);
f(5);
MyClass mc(5); // this doesn't work
}
有没有办法破解上面的例子? IE。强制编译器从构造函数参数推断模板参数。
这个问题会在未来得到解决,还是有充分的理由不解决?
编译器可以推断模板参数的一般规则是什么?
【问题讨论】: