gpt4 book ai didi

c++ - 英特尔 C++ 编译器错误 : identifier "_Compare" is undefined

转载 作者:行者123 更新时间:2023-11-27 22:46:49 25 4
gpt4 key购买 nike

我可以使用以下命令使用 g++ 编译以下 std=c++11 所需的代码:

g++ test.cpp -std=c++11 -Wl,-rpath,/share/apps/gcc/6.3.0/lib64

代码:

#include <chrono>
#include <map>
#include <memory>
#include <thread>
#include <utility>
int main() {
typedef std::unique_ptr<int> intPointer;
intPointer p(new int(10));
std::map<int, std::unique_ptr<int>> m;
m.insert(std::make_pair(5, std::move(p)));
auto start = std::chrono::system_clock::now();
if (std::chrono::system_clock::now() - start < std::chrono::seconds(2))
{
std::thread t;
}
}

完全相同的命令(可能我不知道正确的命令)对英特尔编译器不起作用:

icpc test.cpp -std=c++11 -Wl,-rpath,/share/apps/intel/2016.1.056/vtune_amplifier_xe_2016.1.1.434111/target/linux64/lib64

错误是:

In file included from /share/apps/gcc/6.3.0/include/c++/6.3.0/map(60),
from test.cpp(2):
/share/apps/gcc/6.3.0/include/c++/6.3.0/bits/stl_tree.h(1437):
error: identifier "_Compare" is undefined
&& is_nothrow_move_assignable<_Compare>::value)
^

In file included from /share/apps/gcc/6.3.0/include/c++/6.3.0/map(60),
from test.cpp(2):
/share/apps/gcc/6.3.0/include/c++/6.3.0/bits/stl_tree.h(1778):
error: identifier "_Compare" is undefined
_GLIBCXX_NOEXCEPT_IF(__is_nothrow_swappable<_Compare>::value)
^

我做错了什么,我应该如何解决这个问题。

最佳答案

来自上面的评论:

_Compare_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc> 的模板参数之一在那个文件中定义,所以它肯定被定义了。

更有可能的原因是英特尔编译器可能不知道 is_nothrow_move_assignable这是最近添加到 type_traits 中的一种。

关于c++ - 英特尔 C++ 编译器错误 : identifier "_Compare" is undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41727220/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com