是否可以在 do-while 循环的条件下使用 C++20 [[likely]] 或 [[unlikely]] 属性?
Can a C++20 [[likely]] or [[unlikely]] attribute be used on the condition of a do-while loop?
我尝试将 C++20
的 [[likely]]
和 [[unlikely]]
属性放置在 do
-while
循环条件周围的不同位置,并且在分号被所有三个主要编译器接受后,似乎将它们放在行尾:
int main(int i, char**)
{
do {
++i;
} while (i < 42); [[likely]]
return i;
}
然而这看起来很奇怪。这真的是属性的正确位置吗?
Can a C++20 [[likely]] or [[unlikely]] attribute be used on the condition of a do-while loop?
[[likely]]
不能应用于“条件”。它可以应用于标签和声明。
However this looks rather strange. Is this really the correct place for the attribute?
您已将属性应用于 return 语句。如果我们稍微调整一下空格,您会看得更清楚:
} while (i < 42);
[[likely]] return i;
您应该将属性应用于作为循环体的块语句:
do [[likely]] {
我尝试将 C++20
的 [[likely]]
和 [[unlikely]]
属性放置在 do
-while
循环条件周围的不同位置,并且在分号被所有三个主要编译器接受后,似乎将它们放在行尾:
int main(int i, char**)
{
do {
++i;
} while (i < 42); [[likely]]
return i;
}
然而这看起来很奇怪。这真的是属性的正确位置吗?
Can a C++20 [[likely]] or [[unlikely]] attribute be used on the condition of a do-while loop?
[[likely]]
不能应用于“条件”。它可以应用于标签和声明。
However this looks rather strange. Is this really the correct place for the attribute?
您已将属性应用于 return 语句。如果我们稍微调整一下空格,您会看得更清楚:
} while (i < 42);
[[likely]] return i;
您应该将属性应用于作为循环体的块语句:
do [[likely]] {