我有模板类MyClass的为什么我可以使用从模板功能
template <class T>
class MyClass
{
public:
MyClass() { }
private:
void PrivateFunction() {
std::cout << "Message From Private Function" << std::endl;
}
};
现在,当我试图使用PrivateFunction()内的另一个功能,编译器会报告错误,但是当我试图同里面的模板私有方法函数编译器不显示任何错误。
编译器不报告错误。
template <class T> void f() { MyClass<int> a; a.PrivateFunction(); }
编译器报告错误。
void f() { MyClass<int> a; a.PrivateFunction(); }
你打电话模板函数'F()'了吗? – billz 2014-09-13 10:41:14
是的只有在这种情况下,我得到的错误,但我有兴趣为什么我不能在调用函数之前看到错误。 – 2014-09-13 10:42:23
您是否得到错误取决于编译器。即使“f”从未实例化,clang也会显示1和2的错误。 – hvd 2014-09-13 10:58:28