_VACPP_HASH_FUNCTION_CHECK 在 IBMi7.4 上尝试使用 LANGLVL(*EXTENDED0X) 编译 C++ 代码时出错
_VACPP_HASH_FUNCTION_CHECK error while trying to compile C++ code with LANGLVL(*EXTENDED0X) at IBMi7.4
我正在尝试在 pub400.com:
使用 LANGLVL(*EXTENDED0X) 用 unordered_map 编译简单的 C++ 程序
#include <stdlib.h>
#include <stdio.h>
#include <unordered_map>
#include <string>
int main(int argc, char* argv[])
{
printf("Hello world!\n");
std::tr1::unordered_map<long long, std::string> test;
test[123] = std::string("123");
return 0;
}
但失败并显示消息:
"QSYSINC/STD(xhashtbl)", line 530.50: CZP0274(30) The name lookup for "_VACPP_HASH_FUNCTION_CHECK" did not find a declaration.
"QSYSINC/STD(xhashtbl)", line 530.50: CZP1226(0) Declarations for non-dependent names are resolved in the template definition.
"QSYSINC/STD(xhashtbl)", line 530.50: CZP1227(0) "_VACPP_HASH_FUNCTION_CHECK" does not depend on a template argument. The compilation failed.
Google 在 2016 年用 IBM AIX C++ 编译器搜索了同样的问题(这是一个编译器错误)。
DSPJOB OUTPUT(*PRINT) 显示 pub400.com 运行最新的 IBM i 7.4。
是编译器错误还是我遗漏了什么?我办公室的 IBM i 7.3 TR9 也有同样的问题。
有什么想法吗?
谢谢。
这是他们 /QIBM/include/std/xhashtbl 的一个内部错误,你实际上可以自己修复它,你只需要通过关于 _VACPP_HASH_FUNCTION_CHECK 的 ifdef 检查排除整个 _HashFunctionCheck 函数。他们很久以前就在 zOS(或 AIX?)上修复了它,但忘了为 IBM i 移植它。
我正在尝试在 pub400.com:
使用 LANGLVL(*EXTENDED0X) 用 unordered_map 编译简单的 C++ 程序#include <stdlib.h>
#include <stdio.h>
#include <unordered_map>
#include <string>
int main(int argc, char* argv[])
{
printf("Hello world!\n");
std::tr1::unordered_map<long long, std::string> test;
test[123] = std::string("123");
return 0;
}
但失败并显示消息:
"QSYSINC/STD(xhashtbl)", line 530.50: CZP0274(30) The name lookup for "_VACPP_HASH_FUNCTION_CHECK" did not find a declaration.
"QSYSINC/STD(xhashtbl)", line 530.50: CZP1226(0) Declarations for non-dependent names are resolved in the template definition.
"QSYSINC/STD(xhashtbl)", line 530.50: CZP1227(0) "_VACPP_HASH_FUNCTION_CHECK" does not depend on a template argument. The compilation failed.
Google 在 2016 年用 IBM AIX C++ 编译器搜索了同样的问题(这是一个编译器错误)。 DSPJOB OUTPUT(*PRINT) 显示 pub400.com 运行最新的 IBM i 7.4。
是编译器错误还是我遗漏了什么?我办公室的 IBM i 7.3 TR9 也有同样的问题。 有什么想法吗?
谢谢。
这是他们 /QIBM/include/std/xhashtbl 的一个内部错误,你实际上可以自己修复它,你只需要通过关于 _VACPP_HASH_FUNCTION_CHECK 的 ifdef 检查排除整个 _HashFunctionCheck 函数。他们很久以前就在 zOS(或 AIX?)上修复了它,但忘了为 IBM i 移植它。