`ref T` should be a type!!

Manu turkeyman at gmail.com
Thu Apr 4 08:26:05 UTC 2019


On Mon, Apr 1, 2019 at 7:00 AM Atila Neves via Digitalmars-d
<digitalmars-d at puremagic.com> wrote:
>
> 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.

You could totally invent language where that was possible though, and
it would be *awesome*!


More information about the Digitalmars-d mailing list