在PowerPC编译器上删除功能,而不是GCC上的功能

Deleted function on powerPC compiler, not on gcc

本文关键字:功能 GCC PowerPC 删除 编译器      更新时间:2023-10-16

在我当前的项目中,我们必须编译OpenSuse -12.1和PowerPC的来源。
该项目以C 11。

编写

使用GCC-4.7.2
进行开放式构建使用PowerPC-E500V2-Linux-gnuspe

构建PowerPC

我有一个纯净的虚拟基类(虚拟驱动器和某些虚拟函数),让我们称其为Virtualif

我现在想这样做:

someStdMap[key] = std::vector<std::unique_ptr<VirtualIf> >();

用唯一的PTR和

初始化向量
someStdMap[key].push_back(std::move(uniquePtrToVirtualIf));

将它们添加到该向量

这在GCC构建上完美效果,但在PowerPC构建上失败了:

deleted function 'std::unique_ptr<_Tp, _Tp_Deleter>...

在两行上。

我知道此错误意味着默认构造函数已删除,但是为什么呢?为什么两个编译器之间的区别?我该如何修复该手臂的构建?

这似乎是编译器问题。更新编译器解决了问题。