Topic: What is "int &const r"?
Author: ngo@tammy.harvard.edu (Tom Ngo)
Date: 16 Apr 91 03:37:43 GMT Raw View
Here's an interesting C++ statement. What does it mean?
int &const r;
Hopefully your answer is that it is illegal and/or meaningless. If
so, look in ARM 8.2.2 [References], which states:
In a declaration T D where D has the form
& cv-qualifier-list-opt D1
the type of the contained identifier is "... cv-qualifier-list
reference to T."
And, of course, a cv-qualifier can be const or volatile.
What is a const reference??!? Is this an error in the ARM, or have I
totally misunderstood references?
--
Tom Ngo
ngo@harvard.harvard.edu
617/495-1768 lab number, leave message
Author: fuchs@t500e0.telematik.informatik.uni-karlsruhe.de (Harald Fuchs)
Date: 16 Apr 91 16:06:02 GMT Raw View
ngo@tammy.harvard.edu (Tom Ngo) writes:
>Here's an interesting C++ statement. What does it mean?
> int &const r;
>Hopefully your answer is that it is illegal and/or meaningless. If
>so, look in ARM 8.2.2 [References], which states:
> In a declaration T D where D has the form
> & cv-qualifier-list-opt D1
> the type of the contained identifier is "... cv-qualifier-list
> reference to T."
>And, of course, a cv-qualifier can be const or volatile.
>What is a const reference??!? Is this an error in the ARM, or have I
>totally misunderstood references?
"No" to both questions. A reference is always constant, so "int&const r"
is just a more verbose alternative to "int& r". Why bother with explicitly
disallowing redundancies?
See the original Stroustrup bible for details.
--
Harald Fuchs <fuchs@t500e0.telematik.informatik.uni-karlsruhe.de>