c++ - Aix Visual Age C++ 从版本 8 移至版本 11 模板问题

标签 c++ aix

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

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

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

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

最佳答案

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

修复可能是添加缺少的 const

关于c++ - Aix Visual Age C++ 从版本 8 移至版本 11 模板问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4849471/

相关文章:

c++ - 通过函数参数而不是模板参数获取元组的元素

c++ - 为什么我们需要在 getline(cin, string) 之前使用 cin.ignore()?

bash - 如何删除所有子目录但将这些文件保留在父目录中?

c++ - STL的意义何在?

c++ - 内存泄漏测试

linux - 仅使用 awk 或其他文件处理实用程序处理文件的 UNIX(AIX) 脚本

linux - 如何使用 Gnuplot 4.6 和 AIX 7.2 修复 "Could not find/open font when opening font arial..."和模糊的 png?

database - 启用与 LDAP 服务器的 SSL 通信

shell - 运行 unix 命令时出现 "ksh: no space"-错误

c++ - 带有指向对象初始化的指针的数组