cmake [[maybe_unused]]属性不起作用

zi8p0yeb  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(224)

我尝试使用新的c++17属性[[maybe_unused]]忽略unused parameter警告,如下所示。

int main([[maybe_unused]] int argc, char** argv)
{
    //...
}

但我仍然得到warning: unused parameter ‘argc’ [-Wunused-parameter],并附加以下警告。

warning: ‘maybe_unused’ attribute directive ignored [-Wattributes]

我使用g++ (GCC) 7.2.0cmake-3.11.3。我的编译器标志如下。

-std=c++17 -Wall -pedantic -Wextra -Weffc++

我记得我以前成功地使用了这个属性,但我不知道为什么现在不工作了。有人能告诉我这里做错了什么吗?

pkln4tw6

pkln4tw61#

您可以通过以下方式隐藏有关未使用变量的警告:

int main(int /* argc */, char** argv)
{
    //...
}

或者使用以下技巧:

int main(int argc, char** argv)
{
    (void)argc;

    //...
}

在这种情况下,这段代码将适用于C++标准的早期版本,甚至适用于纯C。

相关问题