Формат Clang: прикрепите скобку только к встроенной функции-члену

#c #clang-format

Вопрос:

Возможно ли в формате clang прикрепить открывающую скобку только к встроенным функциям-членам класса, не имея определения в одной строке? Цель здесь состоит в том, чтобы сохранить класс def компактным, но при этом разрешить установку точек останова.

Не похоже, что это возможно с обертыванием: Обычай.. Просто интересно, не пропустил ли я что-нибудь.

Так что для функций-членов класса:

 class Foo {
    // YES:
    int bar() {
        return 10;
    }
    // NO - cant set a breakpoint in the body
    int bar() { return 10; }
    // NO - too long
    int bar()
    {
        return 10;
    }
};
 

Однако для функций верхнего уровня скобка не прикреплена:

 int main()
{
    return 0;
}

int Foo::bar()
{
    return 10;
}
 

Ответ №1:

Я думаю, что вы можете, но это будет немного сложно. Я думаю, что у вас должно быть два файла формата .clang, один с

 BreakBeforeBraces : Attach
 

и второй с

 BreakBeforeBraces : Allman
 

например. вы должны применить первый из них к заголовочному файлу, а второй-к файлу cpp, используя командную строку в формате clang (я сказал, что это немного сложно).

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

1. Хм, хорошо — спасибо тебе за это. Мне, вероятно, просто придется жить с более длинными определениями классов!