私の現在のプロジェクトでは、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つのコンパイラの違いは?そして、どうすればこれをアームビルド用に修正できますか?