3

eMbedded Visual C++ 4.0 (SP4) 是否支持模板函数?当我尝试编译可在 Visual C++ 6.0 中正常运行的代码时出现错误。

这是我的模板函数,它可以编译:

template<class NodeType>
NodeType* MyFunction()
{
    // ... do stuff
    return new NodeType("foo"); // return a new class instance of type NodeType
}

模板函数用法:

MyClass *myOjb = MyFunction<MyClass>(); // this is causing an error

编译错误:

error C2275: 'MyClass' : illegal use of this type as an expression
                         see declaration of 'MyClass'
error C2059: syntax error : ')'

我需要更改一些编译器开关吗?我如何让它编译?

4

1 回答 1

3

在这里找到了答案。

“当模板函数不是类成员时,它可以正常工作。哦,好吧,我想我必须将它保留为全局函数。”

于 2011-05-24T13:42:09.440 回答