当前位置: 首页 > 知识库问答 >
问题:

编译提升::在 gcc 4.6.4 中移动

鲍飞星
2023-03-14

我有一个使用Boost::move移动锁的函数-

/**
 * Moving assignment operator transfers ownership of the lock
 */
 const_iterator& operator=(const_iterator && other) {
    if (this != &other) {
        iter = other.iter;
        lock = boost::move(other.lock);
    }
    return *this;
 }

我可以使用带有-std=c 11或-std=c 0x标志的gcc 4.7.3编译此代码。但是,使用gcc 4.6.4,即使使用-std=c 0x标志,此代码也会失败。关于如何修复此问题的任何想法?

用于使用C 11功能的CMAKE标志:

set(CMAKE_CXX_FLAGS "-std=c++11")

用于使用C 0x功能的CMAKE标志:

set(CMAKE_CXX_FLAGS "-std=c++++0x")

我在gcc 4.6.4中遇到的错误:

错误:不匹配~运算符!=™在~iter ! = ((索引::skarf::SkarfDatabase*)this)-

::以 P 结尾 = features::D escriptor, T = long unsigned int†™ /home/rahulg/ripe/src/index/skarf/SkarfDatabase.hpp:141:40: 注意: 候选者是: /usr/local/include/boost/smart_ptr/shared_array.hpp:264:31: note: template bool boost::operator!=(boost::d etail::sp_nullptr_t, const boost::shared_array

共有1个答案

何灼光
2023-03-14

Boost使用GCC4.3进行了测试,因此4.6应该有效。

你有没有看过这个:

http://www.boost.org/doc/libs/1_55_0/doc/html/move/implementing_movable_classes.html#move.implementing_movable_classes.copyable_and_movable_cpp0x

 类似资料:
  • 我有一个奇怪的问题,我无法解决。它与助推推力代码有关。 法典: 此文件的名称为“myFirstMatrixTest.cu”。 所以,我有编译器错误: MSB3721退出命令" " C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v 9.2 \ bin \ nvcc . exe "-gen code = arch = compute

  • 本文向大家介绍详解webpack编译速度提升之DllPlugin,包括了详解webpack编译速度提升之DllPlugin的使用技巧和注意事项,需要的朋友参考一下 一、前言 The DllPlugin and DllReferencePlugin provide means to split bundles in a way that can drastically improve build t

  • 我有个问题。为什么我不能编译这个?怎么了? //此代码来自我之前帖子的答案 我有这样的错误: c:\ Program Files(x86)\ Microsoft Visual Studio 8 \ VC \ include \ algorithm(40):错误c 2784:“bool STD::operator = =(const _ Ty C:\Program Files (x86)\Micro

  • 问题内容: 我有一个现有的应用程序,可以通过它构建。这些天我一直在使用,现在我正在尝试使用 因此,要检查兼容性,我将设置为,但尝试在模式下进行编译 我在我的下面添加了以下块 然后我明确地设置 然后执行 但是我停了以下异常 如何将我指向但仍在模式下执行它? 问题答案: 我会说 : 因为sourceCompatibility的默认值为正在使用的当前JVM的版本。 来源:https : //docs.g

  • Maven突然停止编译,出现以下错误。今天早上它起作用了,我不确定是什么原因造成的。 操作系统: 苹果 机器: 苹果电脑专业版 爪哇: 1.8.0_201 (jdk8) 专家:3.8.1 我尝试了什么: 检查Java编译器是否存在 > 检查:我得到了,根据Maven的安装说明,这对于Mac OS是正确的 在编译前将添加到 重新安装了Maven 3.8.1 重新安装JDK8并重置 在我的命令中添加了

  • 有这个构建错误 我想将源代码编译器版本提升到1.7版本,在eclipse中如何做到这一点?