c++ - clang 格式,数组初始化器

标签 c++ clang-format

在我们的项目中,我们有时在一行中初始化数组,有时我们将它们初始化为 block 。那就是

strings::UniChar const s[] = {'H', 'e', 'l', 'l', 'o'};

对比

strings::UniChar const s[] = 
{
  'H', 
  'e', 
  'l', 
  'l', 
  'o'
};

我希望 clang-format 能够区分这两种类型,而不是将第二种类型转换为第一种类型或在左大括号之后对齐元素。不是这样的:

strings::UniChar const s[] = {'H', 
                              'e', 
                              'l', 
                              'l', 
                              'o'};

有没有办法使用配置文件来实现?

最佳答案

在最后一个数组元素之后添加逗号会导致 clang-format(尝试使用 v6.0.0)将元素对齐到左侧,就像您的第二个示例一样。

// With a trailing comma.
char buf[] = {
  'a',
  'b',
};

// Without a trailing comma.
char buf2[] = {'a', 'b'};

关于c++ - clang 格式,数组初始化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38058627/

相关文章:

c++ - 将 C++ lambda 转换为 C 函数

c++ - QT qmake 小写我的自定义小部件名称

c++ - 是否可以同时在两个对象上使用插入运算符?

c++ - clang-format:总是打破所有参数,每行一个

c++ - 数学表达式中奇怪的 clang 格式

clang-format - 当 char 超过字符限制时,每个参数的 Clang 格式换行符

c++ - 有没有一种方法可以使用 SFINAE 来确定对模板函数的调用是否会由于提供的类型而失败?

c++ - C/C99/C++/C++x/GNU C/GNU C99 中枚举的签名

c++ - 使用 clang-format 保留用作函数中间参数的短 lambda

c++ - clang-format 过度缩进概念