On Tue, Oct 13, 2015 at 8:22 AM, Mathieu Lirzin <mthl@openmailbox.org> wrote:
Oleh Krehel <ohwoeowho@gmail.com> writes:

> For exactly this reason (the confusion over 3 notations, 2 of which are
> the same), I propose that we stick only to "const char *" and "char * const",
> and don't use "char const *".

This seems a good idea to me.  It would be nice for this convention to
be documented somewhere.  I think this can be defined in GNU coding
standards.  Can you send this suggestion to bugs-standards@gnu.org?

Standardizing is a good thing. Basing the choice purely on subjective
preference is less so. Many who have looked at the C and C++ grammars
notice that

    const char *

is an historical irregularity that has been folded into the grammar as
a special case. Embracing and standardizing on that special case
detracts from learning a consistent rule and typically leads to
misreading of more complex declarators. The alternative is to leverage
the fact that a const or volatile qualifier always applies to the
object to its left so cv-qualifiers uniformly appear on the right. No
need to remember special case rules or the relative precedence of
various type constructs.  Many C++ well-regarded coding standards
have adopted such a rule (along with moving '*' and '&' leftward).

/john