Czytam kod źródłowy STL i nie mam pojęcia, co &&
ma zrobić operator adresu. Oto przykład kodu z stl_vector.h
:
vector&
operator=(vector&& __x) // <-- Note double ampersands here
{
// NB: DR 675.
this->clear();
this->swap(__x);
return *this;
}
Czy „Adres adresu” ma sens? Dlaczego ma dwa operatory adresu zamiast tylko jednego?
&
, nie miałby nic wspólnego z operatorem address-of, ale zamiast tego oznaczałby, że __x
jest to odniesienie.