gpt4 book ai didi

c++ - [[maybe_unused]] 在 if 语句中似乎在 GCC 中不起作用

转载 作者:太空狗 更新时间:2023-10-29 20:33:06 25 4
gpt4 key购买 nike

[[maybe_unused]] 的重点是告诉编译器不要警告未使用的变量,对吧?那么,为什么 GCC 在这里警告 ui 未使用?

#include <iostream>
#include <vector>

#define NDEBUG
#include <cassert>

int main()
{
std::vector<int> numbers = {1,2,3};

if ([[maybe_unused]] auto ui = static_cast<unsigned int>(numbers.size()))
{
assert(ui);
std::cout << "ok" << std::endl;
}
}

我做错了什么吗?这是编译器中的错误吗?

(顺便说一句:在 Wandbox 上尝试这个,Clang 似乎没有警告 ui 未使用,无论 [[maybe_unused]] 是否是现在)。

(此外:MSVC 也不会警告 ui 未使用,即使 [[maybe_unused]] 不存在)。

最佳答案

对我来说似乎是一个编译器错误。该属性可以应用于任何变量声明,这就是变量声明。

归档91304 .

关于c++ - [[maybe_unused]] 在 if 语句中似乎在 GCC 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57281641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com