在我当前的项目中,我们必须为 openSUSE - 12.1 和 powerPC 编译源代码。
该项目是用 C++11 编写的。
openSUS 使用 gcc-4.7.2
构建 powerPC 使用 powerpc-e500v2-linux-gnuspe 构建
我有一个纯虚拟基类(虚拟析构函数和一些虚拟函数),我们称之为 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>...
在两条线上。
我知道这个错误意味着默认构造函数被删除了,但是为什么呢?为什么这两个编译器之间有区别?我怎样才能为手臂构建解决这个问题?