[Development] commas in ctor-init-lists

Marc Mutz marc.mutz at kdab.com
Wed Jun 1 15:44:22 CEST 2016

On Wednesday 01 June 2016 15:15:17 Sergio Martins wrote:
> On Wednesday, 1 June 2016 14:41:30 WEST Marc Mutz wrote:
> > Hi,
> > 
> > There seems to have been a silent underground move to uglify the Qt
> > sources , by using commas to introduce lines
> > . I have no idea where this came from
> > , but it looks butt
> > -ugly and it is in violation of http
> > (http://wiki.qt.io/Qt_Coding_Style#Line_breaks 2nd item: "Commas go at
> > the _end_ of wrapped lines")
> I think that refers to function calls and wasn't written with ctor
> init-lists in mind, but we can improve it so it stops being a violation.

I'm pretty sure it was written with ctor-init-lists in mind, because all of 
QtBase uses trailing comma. I only come across the leading comma version in 
new modules.

> Subjective reasons against leading commas:
> - It's ugly
> Subjective reasons against trailling commas:
> - It's ugly

I beg your pardon? Trailing commas are ugly? So where's the text editor that 
folds prose text to have commas on the next line?

> Objective reasons in favor of leading commas:
> - You get 1 line diffs

You get the same when you insert fields in the middle. Only at the end there's 
a difference.

> - You can comment it out by commenting only 1 line
> - Code generators / tooling only have to touch 1 line to add or remove

All these are also valid for enums and function argument lists, but I see no-
one doing similar things for enums and functions.

If those reasons were strong enough to do away with 100s of years of 
typesetting history, why don't we use it for functions, too:

       , loooooooooooooooooooooooooooooooooooooooooooonerarg2
       , looooooooooooooooooooooooooooooongestarg3

Hmm, sweet...

> Weren't these reasons even a motivation for C++11 to support "trailling
> enum comma" ?

Yes, and we should wait for / propose that they do the same change for ctor-
init-list, too. Not apply some horrible work-around.


Marc Mutz <marc.mutz at kdab.com> | Senior Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
Tel: +49-30-521325470
KDAB - Qt, C++ and OpenGL Experts

More information about the Development mailing list