0
4

1 回答 1

3

在 valgrind 中发现错误: std::enable_if<std::__and_<std::is_move_constructible<A*>, std::is_move_assignable<A*> >::value, void>::type std::swap<A*>(A*&, A*&)

为什么我会收到此错误?

你显示的不是错误。它是一个函数声明。

我已经实现了移动运算符

您尚未实现移动赋值运算符。


附言

  • 您尚未定义移动构造函数。
    • 您定义了一个未声明的构造函数:A::A(TPixel &&)。这可能是相关的。
  • 复制赋值运算符
    • 泄漏内存。
    • 让两个对象都指向同一个数组。
  • 如果对象已被复制分配并且副本已被销毁,则析构函数具有未定义的行为。
于 2019-03-11T20:14:30.943 回答