如何防止 clang 格式向新行添加单个分号
How to prevent clang-format from adding a single semicolon to a new line?
我在C++中有这行代码
while (fread(pixel_array++, sizeof(byte), 3, fp));
但是当我使用 clang 格式时,它会拆分分号并将其添加到新行中
while (fread(pixel_array++, sizeof(byte), 3, fp))
;
我不喜欢这种风格,我只是喜欢保留原来的风格。
我应该如何修改我的 clang 格式配置?谢谢。
clang-format 5.0 目前无法识别这种类型的循环。不幸的是,从 clang 格式版本 5 开始,您将无法获得满足您需求的设置。
查找 Clang 格式样式选项,我发现最接近的是 AllowShortLoopsOnASingleLine: true
,但该设置无法将循环条件识别为循环的主体。
只要 clang 格式不能识别这些类型的循环,我要做的就是用 // clang-format off
标记它,然后在代码块周围// clang-format on
。
显然这是不可能的,但解决方法可能是用空块替换分号。如果同时设置了AllowShortLoopsOnASingleLine
和AllowShortBlocksOnASingleLine
,则其格式将设置为
while (fread(pixel_array++, sizeof(byte), 3, fp)) {}
fread 不会返回布尔值和空,而循环毫无意义。所以最好将你的代码重写为
for(;;)
{
auto const read_bytes_count{fread(pixel_array, sizeof(byte), 3, fp)};
if((sizeof(byte) * 3) != read_bytes_count)
{
// probably deal with error handling...
break;
}
++pixel_array;
}
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 替换为单个黑斜杠在Qt中添加"
- 如何防止 clang 格式向新行添加单个分号
- MFC Applicaton:如何将一组控件添加到单个文档应用程序中
- 删除 max 并添加新元素 c++ std::make_heap 时进行单个'Heapify'调用
- 为什么为结构的多个数据成员而不是单个成员添加填充
- 如何使用c++将所有类的执行时间添加到单个文本文件中
- 在模板专用化中添加单个构造函数方法
- 如何在win32程序中在单个窗口中添加多个工具栏
- 如何将QActions列表添加到QMenu并用单个插槽处理它们
- 添加到单个数组元素-C++
- 在Qt中,我如何在for循环中添加qstring,以相互附加并放入单个消息框中
- 如何在OpenGL地形上添加单个纹理
- XCode:如何为单个源文件添加预处理器定义
- 如何基于单个用户定义的文字自动添加文字定义
- 如何将多个图标添加到单个TreeView项