0

私の現在のプロジェクトでは、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>...

両方の行で。

このエラーはデフォルトのコンストラクターが削除されたことを意味しますが、なぜですか?そして、なぜ2つのコンパイラの違いは?そして、どうすればこれをアームビルド用に修正できますか?

4

1 に答える 1

0

これはコンパイラの問題のようです。コンパイラを更新すると、問題が修正されました。

于 2012-10-23T08:40:39.170 に答える