我正在尝试用当前的c编译器编译一些旧代码(大约2003年的robocup足球模拟服务器):
gcc-c++-4.7.2-2.fc17.x86_64
下面的函数在此问题的主题中生成错误。任何关于如何修改函数以消除错误的建议都将不胜感激。
int getInt( const std::string& param ) const
{ return rcss::conf::Builder::template get< int >( param ); }发布于 2013-01-12 07:56:33
我假设Builder是一个类,而get是该类的静态模板方法。
关键字template告诉编译器get是一个模板方法。然而,gcc说,如果该关键字还不在模板中,就不应该使用它。
因此,删除template关键字应该可以使其正常工作。
发布于 2013-04-11 18:45:11
来自C++03,14.2.4
模板当成员模板专门化的名称出现在后缀表达式中的.或->之后,或者出现在限定id中的嵌套名称说明符之后,并且后缀表达式或限定id显式依赖于模板参数(14.6.2)时,成员模板名称必须以关键字
作为前缀。
在您的示例中,模板并不显式地依赖于rcss::conf::Builder -参数,这使得template关键字毫无用处(VC允许)。
https://stackoverflow.com/questions/14288333
复制相似问题