小编Seb*_*anH的帖子

为什么捕获列表中的 [[maybe_unused]] 不可能?

我想知道为什么我不能在 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]] 属性?

c++ c++17

8
推荐指数
1
解决办法
1723
查看次数

标签 统计

c++ ×1

c++17 ×1