gpt4 book ai didi

c++ - 特拉维斯 CI : clang deduces copy constructor when it should deduce move constructor

转载 作者:行者123 更新时间:2023-11-30 05:09:52 26 4
gpt4 key购买 nike

[我已经编辑了这个问题,因为我简化了导致问题的示例]

我在使用 clang 3.9 的 Travis CI(dist:trusty)上收到以下错误:

error: call to implicitly-deleted copy constructor of 'Foo'
: foo{move(_foo)},
^ [in a constructor member initialiser list]

note: copy constructor is implicitly deleted because 'Foo' has a user-declared move constructor
Foo(Foo&&) = default;

move(_foo) 显然 是一个 xvalue -- 为什么要调用复制构造函数?

特别奇怪的是,使用 clang 3.9 进行编译可以在我的本地计算机上运行。我正在设置 -std=c++11。如果有任何建议,我将不胜感激。

最佳答案

我在 g++ 4.8 中遇到了同样的问题,表明这是库的问题。事实上,

trusty [...] uses gcc-4 series standard library and is not C++11 conforming.

https://github.com/travis-ci/travis-ci/issues/6300#issue-165225842

关于c++ - 特拉维斯 CI : clang deduces copy constructor when it should deduce move constructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45946773/

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