Есть ли способ принудительно использовать «this->» для членов / методов класса в clang-format / clang-tidy? - PullRequest
6 голосов
/ 09 мая 2019

Я искал везде, но, вероятно, использовал неправильные термины. Я не нашел вариант для этого.

Единственное, что я нашел, - это оставшийся без ответа вопрос (который, однако, немного шире): CPP lint: Можете ли вы принудительно использовать его для переменных класса? .

Ответы [ 2 ]

5 голосов
/ 09 мая 2019

Учитывая существующих опций , я не верю, что это возможно в формате clang, а не в будущем. Основной причиной этого является то, как работает программа. Он не разбирает код C ++ на AST и AST, вместо этого он маркирует текст без необходимости включать (определяя, что он является членом и что является глобальной переменной), а не компилировать базу данных (влияет на определения, включать пути ...). даже можно дать ему кусок кода и переформатировать его.

Исходя из природы проблемы, можно ожидать, если она может существовать в инструменте clang, быть предупреждением компилятора или clang-tidy. Поскольку это должно быть дешево проверить во время компиляции, предупреждение может быть возможным, хотя предупреждения обычно касаются общепринятых улучшений. Я не верю, что существует консенсус по этому вопросу.

Итак, это оставляет ляпушку. Глядя на опции , я не вижу опции. Я считаю, что это возможно как readability-* проверка, так как здесь разрешены более спорные проверки. Хотя, я думаю, если вы хотите этого, вы должны написать это сами и предоставить проект.

Последнее личное замечание: я не уверен, что this-> является хорошим решением, хотя и не начинает все с m_ (уже возможно) или не делает этого. Было бы неплохо, если бы проверка была настраиваемой для добавления / удаления this->, чтобы можно было попробовать.

4 голосов
/ 09 мая 2019

Судя по документации формата clang о его стиле options , это кажется невозможным.

...