std::reference_wrapper
tarafından sarılmış bir öğeye nasıl bir değer atayabiliriz? Hata göre işletmelerinBir std :: reference_wrapper değerine atama
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 !
, direkt atama silinir:
error: use of deleted function 'std::reference_wrapper<_Tp>::reference_wrapper(_Tp&&) [with _Tp = int]'
Sadece merak ediyorsanız, bu şekilde kullanılamazsa dönüşüm operatörünün kullanımı nedir? Ben get() 'orada olduğunda static_cast (v [0]) = 1111; –
chris
Belki "std :: reference_wrapper" ın açık olmayan yapıcısının burada önemli olduğunu ekleyelim. 'boost :: reference_wrapper' değil. – inf
@chris, bir 'reference_wrapper 'işlevini,' T &' ('get()' da oraya çağırabilirsiniz diye bir işleve geçirebilirsiniz, sanırım, ama sadece daha ayrıntılı olacaktır). –