Je lis le code source de la STL et je n'ai aucune idée de ce que &&
l'opérateur d'adresse est censé faire. Voici un exemple de code tiré de stl_vector.h
:
vector&
operator=(vector&& __x) // <-- Note double ampersands here
{
// NB: DR 675.
this->clear();
this->swap(__x);
return *this;
}
L'expression "adresse de l'adresse" a-t-elle un sens ? Pourquoi y a-t-il deux opérateurs d'adresse au lieu d'un seul ?
3 votes
C'est peut-être l'adresse d'une référence.
2 votes
@Gabe ; il s'agit d'une déclaration, ce qui en ferait une référence à une référence, ce qui n'a aucun sens puisque la référence elle-même ne peut pas être modifiée. L'adresse-of ne peut être utilisée que dans le code, pas lors de la déclaration (un paramètre comme dans ce cas, ou autre). Je n'ai jamais vu quelque chose comme ça cependant.
5 votes
Même s'il n'y avait qu'un seul
&
cela n'aurait rien à voir avec l'opérateur address-of, mais signifierait plutôt que__x
est une référence.3 votes
Duplicata possible de Que signifie T&& (double esperluette) en C++11 ?
0 votes
Le doublon devrait être le dernier, cette question a été posée 4 mois auparavant.