`ref T` should be a type!!

Atila Neves atila.neves at gmail.com
Mon Apr 1 13:57:17 UTC 2019


On Monday, 1 April 2019 at 13:09:28 UTC, Dein wrote:
> On Monday, 1 April 2019 at 01:18:44 UTC, Walter Bright wrote:
>> On 3/31/2019 5:35 PM, Rubn wrote:
>>> you can literally use it everywhere else you can use a type.
>>
>> No, you can't. An array of refs won't compile, either.
>>
>>   void test(int& a[]); // error
>>
>> A C++ ref can only appear at the top of a type AST, which is 
>> unlike any other type. Which exactly matches the only place a 
>> storage class can be!
>
> Seriously? You should know as well as I do what that function 
> actually translates to:
>
>    void test(int&* const a);
>
> So I ask you now, how do you get a pointer to a reference. Its 
> the exact same thing. Not sure if you are trying to just 
> deceive me with some syntax sugar in C++ or what.

Bad example, but the point stands:


----
// foo.cpp
int fun() {
     int& foo[5]; // doesn't compile
}
----

I'd never even thought of it until Walter mentioned it that one 
can't have an array of references. Huh.


More information about the Digitalmars-d mailing list