LINUX.ORG.RU

clang-format c++ разрешить пробелы перед скобками в функциях преобразования

 , ,


0

1

Добрый день.
Есть конструкции в объявлении шаблонного класса:

friend std::ostream &operator<< <>(std::ostream &os, const Point<T> &point);
friend bool operator== <>(const Point<T> &point, const Point<T> &otherPoint);
friend bool operator< <>(const Point<T> &point, const Point<T> &otherPoint);
При проходе этого clang-format-ом получается не очень красиво:

friend std::ostream &operator<<<>(std::ostream &os, const Point<T> &point);
friend bool operator==<>(const Point<T> &point, const Point<T> &otherPoint);

// А эта строка вдобавок не компилируется
friend bool operator<<>(const Point<T> &point, const Point<T> &otherPoint);

Как бы сказать clang-format-у, чтобы он не удалял данные пробелы?
Заранее спасибо.

UPD0
Пока на ум приходят только

// clang-format off
// ...
// clang-format on

UPD1 Отправил bug report https://bugs.llvm.org/show_bug.cgi?id=42381

★★★★★

Ответ на: комментарий от rumgot

Я лично использую uncrustify. У него огромное количество настроек, можно подогнать практически под любые требования. Осилит ли он конкретно твой случай, не знаю, но посмотреть рекомендую.

// А эта строка вдобавок не компилируется

А вот это уже тянет на баг clang-format, можно и зарепортить.

Laz ★★★★ ()
Ответ на: комментарий от rumgot

Ты не понимаешь сути утилит типа clang-format. Задача не «сделать красиво», а «сделать единообразно и поддерживать это единообразие». Детали стиля не важны, важно его наличие и соблюдение

Gvidon ★★★★ ()

А какой стандарт С++?

Может хрен с ним, пусть удаляет, но код вроде бы в новых С++ должен оставаться рабочим без этим пробелов.

anonymous ()
Ответ на: комментарий от anonymous

Стандарт C++11. После удаления пробела становится нерабочей строка:

// А эта строка вдобавок не компилируется
friend bool operator<<>(const Point<T> &point, const Point<T> &otherPoint);
Что неудивительно.

rumgot ★★★★★ ()
Последнее исправление: rumgot (всего исправлений: 1)
Ответ на: комментарий от rumgot

Тогда вопрос: пользуетесь ли вы утилитой clang-format

Пользуюсь постоянно. Но настроить идеально мне его не удалось. В итоге просто смирился с некоторыми его косяками.

andreyu ★★★★★ ()