Coding standards proposal, usage of "this"

Simon Marchi via Gdb-patches
2021-08-13T14:27:25Z

Hi all,

Here's something I had in mind for a while. We don't consistently use
`this` when referring to fields or methods of the current object. I
never now if I should use it or not, or point it out in review. I
therefore propose these rules so that we have something to refer to.

- Use `this` when referring to a data member that is not prefixed by
`m_`. Rationale: without `this`, it's not clear that you are
referring to a member of the current class, versus a local or global
variable.
- Don't use `this` when referring to a data member that is prefixed by
`m_`. Rationale: the prefix already makes it clear that you are
referring to a member of the current class, so adding `this` would
just add noise.
- Use `this` when referring to a method of the current class.
Rationale: without `this, it's not clear that you are referring to a
method of the current class, versus a free function.

If we had a convention for how to name internal helper methods, which
would make it clear that they are methods of the current object and not
free functions (a bit like `m_` does for data members), we could omit
`this` when calling such a method. But we don't have that at the
moment.

A concrete example:

int a_global;

struct a_struct
{
int a_method ()
{
int a_local = 17;

return (a_local
+ a_global
+ m_a_private_field
+ this->a_public_field
+ this->a_helper_method ());
}

int a_public_field;

private:
int a_helper_method ()
{
return m_a_private_field;
}

int m_a_private_field;
};

Any comments? My intention would be to add this to the coding standards
on the wiki.

Simon