次のようなC++ 11コードの短縮が有効であると思います。削除された代入演算子のg ++コンパイラエラー<string、string>
unordered_map<string,string> test;
auto it = remove_if(test.begin(), test.end(),
[] (const decltype(test)::value_type &entry) { return true; });
は、しかし、それはのstd ::ペアの削除代入演算子不満、6.3グラム++でコンパイルに失敗しますが、そのオペレータ私の知る限り削除されません。
/usr/include/c++/6/bits/stl_algo.h:868:16: error: use of deleted function ‘std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(...
*__result = _GLIBCXX_MOVE(*__first);
これはコンパイラ/ glibcのバグですか、それとも私が見落とした何らかの理由で本当に無効なコードですか?
私自身の答えであなたを@mentionできません:編集のおかげで、実際にis_assignableは、割り当てられたタイプと譲受人の両方のタイプが必要です。 – spectras