C++ Logo

std-proposals

Advanced search

Re: "this->" -> "." alias

From: Keenan Horrigan <friedkeenan_at_[hidden]>
Date: Thu, 07 Oct 2021 08:49:31 +0000
I thought it was just things in the global namespace with a leading underscore (and anything with a double underscore anywhere) that were reserved for compiler/STL use, so member variables would be fine? Personally trailing underscores are far from aesthetically pleasing to my eyes

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Thursday, October 7th, 2021 at 4:04 AM, Nikolay Mihaylov via Std-Proposals <std-proposals_at_[hidden]> wrote:

> My 5 cents about the thing nobody mentions.
>
> Although many programming languages uses underscore for private members, in C++ and probably in C,
> you are not allow to do anything with front underscore. Yes, compiler will accept it and it will be compiled,
> but these are reserved for system library implementation.
>
> So:
>
> class A{
> int _a;
> int _b;
> public:
> // ...
> }
>
> this is not allowed.
>
> I personally use this:
>
> class A{
> int a_;
> int b_;
> public:
> // ...
> }
>
> Regards
>
> On Thu, Oct 7, 2021 at 10:56 AM Gašper Ažman via Std-Proposals <std-proposals_at_[hidden]> wrote:
>
>> As a note, deducing this is in c++23.
>>
>> On Thu, Oct 7, 2021, 04:16 Phil Bouchard via Std-Proposals <std-proposals_at_[hidden]> wrote:
>>
>>> On 10/6/21 3:56 PM, Keenan Horrigan via Std-Proposals wrote:
>>>
>>>> I would think that [the "Deducing this" paper](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p0847r7.html) would supersede this idea, as methods with "object parameters" are currently proposed to disallow using the this keyword or implicitly looked up member variables within them, so a "var" parameter would be unambiguously the parameter and you'd have to access the member variable through something like "self.var".
>>>
>>> Oh yeah I remember that proposal. I was suggesting an alternative but the conversation died in the egg for some reason and I never followed up:
>>>
>>> https://lists.isocpp.org/std-proposals/2020/03/1215.php
>>>
>>> Same idea at its root but different syntax.
>>>
>>>> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>>>> On Wednesday, October 6th, 2021 at 1:26 PM, Phil Bouchard via Std-Proposals [<std-proposals_at_[hidden]>](mailto:std-proposals_at_[hidden]) wrote:
>>>>
>>>>> Yeah I agree.
>>>>>
>>>>> On 10/6/21 12:26 PM, Lee Howes wrote:
>>>>>
>>>>>> Seems a bit much to make a language change just to allow member shadowing doesn't it? The following is no more typing heavy:
>>>>>>
>>>>>> struct A
>>>>>>
>>>>>> {
>>>>>>
>>>>>> int _var;
>>>>>>
>>>>>> void foo(int & var);
>>>>>>
>>>>>> };
>>>>>>
>>>>>> void A::foo(int & var)
>>>>>>
>>>>>> {
>>>>>>
>>>>>> var = 1; // changes parameter
>>>>>>
>>>>>> _var = 2; // changes member variable
>>>>>>
>>>>>> }
>>>>>>
>>>>>> On Wed, 6 Oct 2021 at 09:04, Phil Bouchard via Std-Proposals <std-proposals_at_[hidden]> wrote:
>>>>>>
>>>>>>> Greetings,
>>>>>>>
>>>>>>> This is just a minor syntactic adjustment but could fix a very long lasted problem.
>>>>>>>
>>>>>>> Suppose you have:
>>>>>>>
>>>>>>> struct A
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> int var;
>>>>>>>
>>>>>>> void foo(int & var);
>>>>>>>
>>>>>>> };
>>>>>>>
>>>>>>> What I suggest is to add a prefix that could replace: "this->"
>>>>>>>
>>>>>>> void A::foo(int & var)
>>>>>>>
>>>>>>> {
>>>>>>>
>>>>>>> var = 1; // changes parameter
>>>>>>>
>>>>>>> .var = 2; // changes member variable
>>>>>>>
>>>>>>> }
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> --
>>>>>>>
>>>>>>> [Logo](https://www.fornux.com/)
>>>>>>> Phil Bouchard [facebook icon](https://www.linkedin.com/in/phil-bouchard-5723a910/)
>>>>>>> CTO
>>>>>>> T: (819) 328-4743
>>>>>>> E: phil_at_[hidden] | www.fornux.com
>>>>>>> 1188 rue Saint-Louis | Gatineau (Qc), J8T 2L8 Canada
>>>>>>> [Banner](https://goglobalawards.org/) Le message ci-dessus, ainsi que les documents l'accompagnant, sont destinés uniquement aux personnes identifiées et peuvent contenir des informations privilégiées, confidentielles ou ne pouvant être divulguées. Si vous avez reçu ce message par erreur, veuillez le détruire.
>>>>>>> This communication (and/or the attachments) is intended for named recipients only and may contain privileged or confidential information which is not to be disclosed. If you received this communication by mistake please destroy all copies.
>>>>>>> --
>>>>>>> Std-Proposals mailing list
>>>>>>> Std-Proposals_at_[hidden]
>>>>>>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>>>>>
>>>>> --
>>>>>
>>>>> [Logo](https://www.fornux.com/)
>>>>> Phil Bouchard [facebook icon](https://www.linkedin.com/in/phil-bouchard-5723a910/)
>>>>> CTO
>>>>> T: (819) 328-4743
>>>>> E: phil_at_[hidden] | www.fornux.com
>>>>> 1188 rue Saint-Louis | Gatineau (Qc), J8T 2L8 Canada
>>>>> [Banner](https://goglobalawards.org/) Le message ci-dessus, ainsi que les documents l'accompagnant, sont destinés uniquement aux personnes identifiées et peuvent contenir des informations privilégiées, confidentielles ou ne pouvant être divulguées. Si vous avez reçu ce message par erreur, veuillez le détruire.
>>>>> This communication (and/or the attachments) is intended for named recipients only and may contain privileged or confidential information which is not to be disclosed. If you received this communication by mistake please destroy all copies.
>>>
>>> --
>>>
>>> [Logo](https://www.fornux.com/)
>>> Phil Bouchard [facebook icon](https://www.linkedin.com/in/phil-bouchard-5723a910/)
>>> CTO
>>> T: (819) 328-4743
>>> E: phil_at_fornux.com | www.fornux.com
>>> 1188 rue Saint-Louis | Gatineau (Qc), J8T 2L8 Canada
>>> [Banner](https://goglobalawards.org/) Le message ci-dessus, ainsi que les documents l'accompagnant, sont destinés uniquement aux personnes identifiées et peuvent contenir des informations privilégiées, confidentielles ou ne pouvant être divulguées. Si vous avez reçu ce message par erreur, veuillez le détruire.
>>> This communication (and/or the attachments) is intended for named recipients only and may contain privileged or confidential information which is not to be disclosed. If you received this communication by mistake please destroy all copies.
>>> --
>>> Std-Proposals mailing list
>>> Std-Proposals_at_[hidden]
>>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>>
>> --
>> Std-Proposals mailing list
>> Std-Proposals_at_[hidden]p.org
>> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals

Received on 2021-10-07 03:49:40