我想知道为什么我不能在 lambda 的捕获列表中使用 [[maybe_unused]] 属性。是否有原因导致捕获列表的变量无法标记为 [[maybe_unused]]?这将避免捕获所有变量,即 [&],在这种情况下:
auto lambda = [&x, [[maybe_unused]] &y](){
if constexpr( x >= 0) {
return x;
}
else {
return y;
}
}
Run Code Online (Sandbox Code Playgroud)
在 x >= 0 的每种情况下,编译器都会警告未使用 y。但如果 x < 0,则不会发出警告。我的第一次尝试是使用 [[maybe_unused]],但这是不可能的。
我的问题:是否有原因,为什么我不能在 lambda 捕获列表中使用 [[maybe_unused]] 属性?