8
std::reference_wrapper
でラップされたアイテムにどのように値を割り当てることができますか?std :: reference_wrapperに値を代入する
int a[] = {0, 1, 2, 3, 4};
std::vector <std::reference_wrapper<int>> v(a, a+5);
v[0] = 1234; // Error, can not assign value !
、直接の割り当ては削除されます。
error: use of deleted function 'std::reference_wrapper<_Tp>::reference_wrapper(_Tp&&) [with _Tp = int]'
変換演算子をこのように使用できない場合はどうすればよいでしょうか? 'static_cast(v [0])= 1111;' get() 'があるときはちょっとダムです。 –
chris
'std :: reference_wrapper 'の非明示的なコンストラクタがここで重要であると付け加えることがあります。 'boost :: reference_wrapper'は持っていません。 – inf
@chrisだから 'reference_wrapper'を関数 'T&'に渡すことができます( 'get()'と呼ぶこともできますが、もっと冗長です)。 –