Len*_*Len 3 c++ gcc gcc-warning c++17
重点[[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;
}
}
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?这是编译器中的错误吗?
(顺便说一句:在Wandbox上尝试此操作,ui无论是否[[maybe_unused]]存在Clang,Clang似乎都不会发出警告)。
(此外:ui即使没有,MSVC也不警告未使用[[maybe_unused]])。