Trailing comma everywhere

Anatoly Scheglov
Anatoly Scheglov

Мотивирующий пример:

Foo::Foo(Bar bar)
  : a_(bar.a),
    b_(bar.b),
    ...
    m_(bar.m),
#if FEATURE_ENABLED
    n_(bar.n),
    x_(bar.x)
#else
    n_(bar.n)
#endif
{}

c trailing comma было бы проще -

    n_(bar.n),
#if FEATURE_ENABLED
    x_(bar.x),
#endif
{}

То же самое нужно и в parameter-declaration-list и в других списках.

-1
рейтинг
3 комментария
develoit
Foo::Foo(Bar bar)
: a_(bar.a)
, b_(bar.b)
...
, m_(bar.m)
#if FEATURE_ENABLED
, n_(bar.n)
, x_(bar.x)
#else
, n_(bar.n)
#endif
{}

например)
develoit
yndx-antoshkka
В комитете недавно обсуждали такое предложение для списков инициализации open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0562r0.pdf . Решили ничего не менять.

Боюсь что в ближайшее время ещё раз поднимать вопрос бессмысленно.
yndx-antoshkka
alexander.y.k
yndx-antoshkka, в приведенном вами документе описан подход к списку инициализации конструкторов, в то время как Anatoly Scheglov преложил расширить такой подход на все списки инициализации. Лично мне не достает такой возможности в спиках аргументов функций, как при их определениях так и при вызовах.

При обобщенном написании кода часто приходится вести списки в различных конекстах, особенно с введением constexpr функий и все большей роли шаблонов. Писать обобщенный код стало бы действительно легче.

Пусть обсуждать это будут не скоро, но предложение действительно стоящее.
alexander.y.k
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).