Given that rvalue references are declared using "
&&", it seems reasonable to assume that the presence of "
&&" in a type declaration indicates an rvalue reference. That is not the case...
In this article, I describe the two meanings of "
&&" in type declarations, explain how to tell them apart, and introduce new terminology that makes it possible to unambiguously communicate which meaning of "
&&" is intended. Distinguishing the different meanings is important, because if you think "rvalue reference" whenever you see "
&&" in a type declaration, you'll misread a lot of C++11 code...