Aix Visual Age C ++从版本8迁移到版本11模板问题

时间:2011-01-31 09:52:10

标签: c++ aix

我们遇到的问题是在封装在模板中的类中调用方法。

void BuildData(DataBuilder &dBuild, char* name="AccountDetails") { ... }

在版本8编译器中,使用单个参数调用此方法将获取默认值并起作用。

在使用单个参数调用此方法的版本11编译器中,我们得到编译错误,要求我们显式提供第二个参数,因此忽略默认值。

1 个答案:

答案 0 :(得分:3)

如果您提供一个参数,则必须将默认值"AccountDetails"转换为char*类型。没有看到错误,我假设它是一个“丢失const限定符”或任何AIX调用。可能不会修改字符串文字,但name指向可以修改的字符串。通常这是一个警告,但这取决于编译器设置。

修复可能是添加缺少的const