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 __xjest to odniesienie.