使用 std::ignore 避免 unused warnings
通常情况下,要避免 unused warnings ,可以使用 [[maybe_unused]]
。例如下面的程序,去掉 [[maybe_unused]]
,那么就会提示 unused variable 的 warning 。
1 | int main() { |
但并非所以情况都可以使用 [[maybe_unused]]
。例如,遇到 structured binding 的时候,这时候就需要 std::ignore
了。例如下面的程序。
1 |
|
这个程序,如果去掉 st::ignore
,那么 gcc 和 clang 都会给出 unused variable 的 warning 。st::ignore
可以被任意赋值,作用也仅仅只是为了避免 unused 的 warning 。有一个小细节是, gcc 和 clang 遇到 structured binding 的时候,如果其中有一个变量后续被使用了(例如例子中的 k
或 v
),那么就不会提示 unused variable 了。
std::ignore
还可以和 std::tie()
联合使用,用来跳过某个值并且不给出警告。例如:
1 |
|