[GNC-dev] Minor coding style discussion: C++ and comments
John Ralls
jralls at ceridwen.fremont.ca.us
Sat Jun 23 18:49:12 EDT 2018
> On Jun 23, 2018, at 2:16 PM, Christian Stimming <christian at cstimming.de> wrote:
>
> Dear developers,
>
> some years ago we had a longer discussion about our coding style guide,
> especially as we started with more C++ parts in the project. Last time we
> discussed this a bit more was in 2014 [1], and the result was summarized in
> the wiki page https://wiki.gnucash.org/wiki/CodingStandard
>
> However, as C++ becomes more common for the actual work throughout gnucash, we
> might need to add or clarify a few points there. In my opinion this is really
> a minor issue, as everyone of us will be able to read and write any coding
> style, regardless which one we prefer. It is just nicer to read if there is a
> larger level of consistency. Having said that, one such thing is the way of
> writing multi-line comments in C++ code. Should this be:
>
> // This is
> // a multi-line comment (C++ style)
>
> or rather in C style
>
> /* This is
> a multi-line comment (C style) */
>
> with additionaly variants of those? John and I discussed this question
> shortly. There used to be an advice on the wiki page but different from the
> other points this hasn't been discussed here on the mailing list [2]. Hence
> John and I agreed it should be raised on the mailing list.
>
> My proposal is to use the C++ style option in the source code. In any case the
> style should be consistent throughout the source files, i.e. someone would
> need to transform the style that is different from the agreed one.
>
> Also, the doxygen comments in the headers, should those stick to the doxygen
> proposal
>
> /** Some doxygen
> multi-line comment (C style, doxygen) */
>
> or should we switch to something different? There are multiple options
> possible, including
>
> /// Some doxygen multi-line
> /// comment (C++ style, doxygen)
>
> but on the other hand we don't have many C++-only headers so far. I'd rather
> stick with the old style as long as we usually have headers used by the C code
> as well.
>
> More ideas and voices?
>
> Regards,
>
> Christian
>
>
> [1] https://lists.gnucash.org/pipermail/gnucash-devel/2014-September/038027.html
> [2] John said: The only discussion about commenting style I found was
> https://lists.gnucash.org/pipermail/gnucash-devel/2008-January/thread.html#22321 (the thread finishes in February,
> https://lists.gnucash.org/pipermail/gnucash-devel/2008-February/022375.html);
> before we considered C++; another discussion about C++ style begins at
> https://lists.gnucash.org/pipermail/gnucash-devel/2014-September/038027.html
> but doesn’t mention comments
A wee clarification: Reference 2 is a discussion of 6 possible commenting styles for C code; it occurred several years before we began to adopt C++. It’s worth reading both to see all 6 proposals and the various arguments for and against each. The argument about C compilers not supporting C++-style is now obsolete. The C99 spec allows that style of comments and any compiler that supports C++11 will also support C99, though we may need to set -std=C99 in CMAKE_C_FLAGS to avoid whining.
There are also a couple more ways to delineate doxygen comments described at http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html <http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html>.
For the record, I don’t care as long as all comments in a file use the same style and a single commit is used to convert the comments in a particular file and that commit has no other changes.
Regards,
John Ralls
More information about the gnucash-devel
mailing list