This is the mail archive of the
mailing list for the GCC project.
Re: C2X Proposal, merge '.' and '->' C operators
On 12/16/19, J Decker <email@example.com> wrote:
> Here's the gist of what I would propose...
> In C, there are two operators . and -> used to access members of struct and
> union types. These operators are specified such that they are always paired
> in usage; for example, if the left hand expression is a pointer to a struct
> or union, then the operator -> MUST be used. There is no occasion where .
> and -> may be interchanged, given the existing specification.
> It should be very evident to the compiler whether the token before '.' or
> '->' is a pointer to a struct/union or a struct/union, and just build the
> appropriate output.
I have mixed feelings on this proposal. On the one hand, when I was
first learning C, the difference between '.' and '->' was a major
source of confusion (as was understanding pointers in general). On the
other hand, now that I understand them a bit better, I find the
distinction to be helpful in reducing ambiguity and making code more
> The source modification for the compiler is very slight, even depending on
> flag_c2x(that's not it's name). It ends up changing a lot of existing
> lines, just to change their indentation; but that shouldn't really count
> against 'changed lines'.
> I'm sure, after 4 score and some years ('78-19) that it must surely have
> come up before? Anyone able to point me to those existing proposals?
I saw some Twitter threads and StackOverflow Q&As on the topic before;
I'm not really sure how to search to find them again though, given
that the punctuation involved is often treated as special