C++是Google大部分开源项目的主要编程语言。C++有很多强大特性,但是另一面就是他的复杂性更容易产生bug,难以阅读和维护。
这里针对项目组常用的习惯。把谷歌代码风格稍微修改了下:
对应的clang-format配置为AccessModifierOffset:访问修饰符的额外缩进或缩进,例如public:
.
这里把所有的对齐配置选项都罗列出来:
BracketAlignmentStyle
)如果true
,在左括号后水平对齐参数。
括号包括圆括号(圆括号)、尖括号和方括号。
这里配置的值为:
BAS_Align
(在配置中Align
:)对齐开括号上的参数,例如:
someLongFunction(argument1,AlignConsecutiveStyle
)对齐连续宏定义的样式。
配置为Consecutive
格式将输出如下:
#define SHORT_NAME 42
#define LONGER_NAME 0x007f
#define EVEN_LONGER_NAME (2)
#define foo(x) (x * x)
#define bar(y, z) (y + z)
EscapedNewlineAlignmentStyle
)用于在转义换行符中对齐反斜杠的选项。
ENAS_Left(在配置中Left:)尽可能向左对齐转义换行符。
true:
#define A \
int aaaa; \
int b; \
int dddddddddd;
false:
如果为 true,则水平对齐二元和三元表达式的操作数。
具体来说,这会对齐需要拆分为多行的单个表达式的操作数。
设置为ture:
void func() {
return some_func(some_variables)
<< "aaaaaaaaaaaaaaasssssssssssssssaaaaaaaaaaaaaaaaaa"
<< "asdaaasssssssss";
}
设置为false:
void func() {
return some_func(some_variables)
<< "aaaaaaaaaaaaaaasssssssssssssssaaaaaaaaaaaaaaaaaa"
<< "asdaaasssssssss";
}
Boolean
)如果true
,对齐尾随注释。
true: false:
int a; // My comment a vs. int a; // My comment a
int b = 2; // comment b int b = 2; // comment about b
如果函数调用或花括号初始化器列表不适合一行,则允许将所有参数放到下一行,即使 BinPackArguments
是false
。
2.7 函数声明对齐 AllowAllParametersOfDeclarationOnNextLine(Boolean
)
如果函数声明不适合一行,则允许将函数声明的所有参数放到下一行,即使BinPackParameters
是false
。
ShortBlockStyle
)根据值,可以放在一行中。while
(true)
{
continue;
}
Boolean
)如果true
,短大小写标签将被压缩为一行
ShortFunctionStyle
)根据值,可以放在一行中。int
f()
{
return
0;
}
ShortLambdaStyle
)根据值,可以放在一行中。auto
lambda
[]()
{
return
0;
}
ShortIfStyle
)根据值,可以放在一行中。if
(a)
return;
Boolean
)如果true
,可以放在一行。while(true)continue;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。