c++ - 可以 clang-format 将大括号添加到单行if语句等

标签 c++ clang clang-format

clang-format 是否可以选择为所有 if()/do/while 语句等添加大括号?

例如

if( i == 42 )
   std::cout << "You found the meaning of life\n";
else
   std::cout << "Wrong!\n";

if( i == 42 )
{
   std::cout << "You found the meaning of life\n";
}
else
{
   std::cout << "Wrong!\n";
}

使用

$ clang-format --version
clang-format version 3.6.0

最佳答案

clang-tidy 可以使用 FIXITS 对您的代码进行语法更改

clang-tidy YOUR_FILE.cpp -fix -checks="readability-braces-around-statements" -- COMPILE_OPTIONS

更新:

clang-tidy 是一个重量级的工具,因为它需要编译选项来解析文件,遗憾的是 clang-format(从 v3.9 开始)不会添加大括号。

COMPILE_OPTIONS 将是用于编译文件的包含路径等,即 -std=c++14 -stdlib=libc++ -O2 -I。

如果你有一个来自 CMake 的 compile_options.json 文件,那么你可以将它包含的目录的路径传递给 clang-tidy,它会为该文件查找适当的编译选项:

clang-tidy YOUR_FILE.cpp -fix -checks="readability-braces-around-statements" -p COMPILE_OPTIONS_DIR

关于c++ - 可以 clang-format 将大括号添加到单行if语句等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26111162/

相关文章:

c++ - 通过 clang-format 格式化 lambda 背后的逻辑是什么?

c++ - 更改 {} 和访问修饰符的 Clang 格式

c++ - 是否可以将 Doxygen 配置为从协作图中省略基本的 C++ 类型?

c++ - 可以比较两个指向成员函数的指针是否相等吗?

c++ - -Wreinterpret-base-class 在 Clang/C++ 中是什么意思?

c++ - boost::uuids::uuid 作为 std::unordered_map 中的键?

c++ - "ISO C++ forbids forward references to ' 枚举 ' types"指定枚举基础类型时

c++ - 为什么 fmt 将 0.5 四舍五入到 0(小数点后为零)?

c++ - 线程 sleep VS 等待条件

visual-studio-code - VSCode 和 clang 格式 : use my own file extension