C++ Logo

liaison

Advanced search

Re: [wg14/wg21 liaison] Allow '.' to behave like '->' where it is currently an error

From: Uecker, Martin <Martin.Uecker_at_[hidden]>
Date: Fri, 28 Feb 2020 14:03:58 +0000


Am Freitag, den 28.02.2020, 04:57 -0800 schrieb J Decker:
>
>
> On Thu, Feb 27, 2020 at 10:21 PM Uecker, Martin <Martin.Uecker_at_med.un
> i-goettingen.de> wrote:
> > Am Donnerstag, den 27.02.2020, 22:15 -0800 schrieb J Decker:
> > > On Thu, Feb 27, 2020 at 10:09 PM Uecker, Martin via Liaison <
> > > liaison_at_[hidden]> wrote:
> > >
> > > >
> > > > It is useful to have the information about
> > > > whether something is a pointer or not and the
> > > > difference between '.' and '->' makes it clear.
> > > >
> > >
> > > https://gist.github.com/d3x0r/f496d0032476ed8b6f980f7ed31280da#th
> > e-meaning-of---and--
> > >
> > > it reduces the points you have to check, but it's really not all
> > that
> > > useful when dealing with a variety of languages.. '.' just
> > becomes another
> > > place to check validity of the expression's values... So yes, it
> > increases
> > > the potential things to check... but then, nothing stylistically
> > prevents
> > > you from continuing to denote that.
> >
> > If it not enforced by the language, the information
> > is unreliable. This is even worse than not having it.
>
> I know, this is still really just me... https://github.com/d3x0r/sack
> and some arbitrary source... https://github.com/d3x0r/SACK/blob/mast
> er/src/idlelib/idle.c
>
> there's a flags structure that is just instanced in another struct
> check->flags.bDispatched = 1
>
> that's used a few times, all other accesses are `->`
>
> can you provide an example of where this information is useful?

You can see directly that flags is just an embedded
structure, while with your proposal it could be a
structure potentially shared by different objects.
In general, this information can be very useful.

Best,
Martin



> Porting the above to c2x it wouldn't change how many things have to
> be looked at as suspect...
> OR what is the information that distinct operators provides rather
> than using '.' everywhere (except, I suppose in C++ where you want to
> access an operator override on a pointer type.. )
>
> class x {
> /* operaror->() ... */
> };
> class x *px;
>
> px->x; (use operator?)
>
>
> > Best,
> > Martin

Received on 2020-02-28 08:06:47