Clang всегда нарушает список наследования для множественного наследования

#c #formatting #clang-format

#c #форматирование #clang-формат

Вопрос:

Хотите отформатировать мой код таким образом:

 class Foo : public Parent1, protected Parent2
{
};
  

Однако clang-format всегда нарушает список наследования для множественного наследования следующим образом:

 class Foo 
    : public Parent1
    , protected Parent2
{
};
  

что не красиво и не удобно. Есть ли способ исправить это — кажется, для этого нет опции в параметрах стиля Clang-Format?

Ответ №1:

Вариант стиля, который вы ищете, это BreakInheritanceList . Подробности см. В документации.

Когда для этого параметра стиля установлено значение BeforeComma , вы получаете форматирование, показанное выше. Возможно, вы не устанавливаете его явно — если ваши настройки основаны на Mozilla стиле, тогда для этого параметра стиля установлено значение BeforeComma .

По умолчанию используется значение normally BeforeColon , что, вероятно, вас удовлетворит. Вы также можете попробовать AfterColon посмотреть, нравится ли вам это лучше.

Хорошим местом для экспериментов с этими параметрами стиля является конфигуратор.

Комментарии:

1. Да, вы правы: у меня было BeforeComma , BeforeColon — работает нормально, выглядит хорошо. Спасибо!