转换为 clang 格式的 C++17 嵌套命名空间?
Convert to C++17 nested namespaces in clang-format?
我第一次尝试在代码库中启用 clang-format。我们已经在使用 clang-tidy 来检查代码味道,并且它已经开始警告我们这样的代码:
namespace foo { namespace bar {
或
namespace foo {
namespace bar {
用 modernize-concat-nested-namespaces 检查。想看
namespace foo::bar {
我希望 运行 clang-format 可以为我解决这个问题,但没有成功。有没有办法用 clang-format 来做到这一点?
我不想窃取@Barry 的答案(来自对原始问题的评论),但已经 4 个月了...... clang-tidy
确实可以为你解决这个问题,并且 clang-format
主要处理空格,不会为您解决这个问题。
对于clang-tidy
,你会这样做:
clang-tidy -checks='-*,modernize-concat-nested-namespaces' -fix myfile.cpp
解释:
-*
禁用所有检查。
- 随后的
modernize-concat-nested-namespaces
启用该检查。
-fix
告诉 clang-tidy
修复发现的任何问题,但前提是没有编译错误。要强制它在存在编译错误的情况下解决问题,请使用 -fix-errors
.
如果需要,您可以在 command-line 上指定多个源文件。
我第一次尝试在代码库中启用 clang-format。我们已经在使用 clang-tidy 来检查代码味道,并且它已经开始警告我们这样的代码:
namespace foo { namespace bar {
或
namespace foo {
namespace bar {
用 modernize-concat-nested-namespaces 检查。想看
namespace foo::bar {
我希望 运行 clang-format 可以为我解决这个问题,但没有成功。有没有办法用 clang-format 来做到这一点?
我不想窃取@Barry 的答案(来自对原始问题的评论),但已经 4 个月了...... clang-tidy
确实可以为你解决这个问题,并且 clang-format
主要处理空格,不会为您解决这个问题。
对于clang-tidy
,你会这样做:
clang-tidy -checks='-*,modernize-concat-nested-namespaces' -fix myfile.cpp
解释:
-*
禁用所有检查。- 随后的
modernize-concat-nested-namespaces
启用该检查。 -fix
告诉clang-tidy
修复发现的任何问题,但前提是没有编译错误。要强制它在存在编译错误的情况下解决问题,请使用-fix-errors
.
如果需要,您可以在 command-line 上指定多个源文件。