c++ - c++11中未使用的参数

标签 c++ c++11 unused-variables

在 c++03 及更早版本中,为了禁用关于未使用参数的编译器警告,我通常使用这样的代码:

#define UNUSED(expr) do { (void)(expr); } while (0)

例如

int main(int argc, char *argv[])
{
    UNUSED(argc);
    UNUSED(argv);

    return 0;
}

但是宏不是 C++ 的最佳实践,所以。 c++11标准有没有更好的解决方案?我的意思是我可以摆脱宏吗?

谢谢大家!

最佳答案

你可以省略参数名称:

int main(int, char *[])
{

    return 0;
}

在 main 的情况下,你甚至可以完全省略参数:

int main()
{
    // no return implies return 0;
}

请参阅 C++11 标准中的“§ 3.6 开始和终止”。

关于c++ - c++11中未使用的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15763937/

相关文章:

c++ - 使用以类 vector 作为参数的函数清除派生类 vector

c++ - 我什么时候可以打破别名规则?

c++ - shared_ptr 分配 : order of reference counting

c++ - 静态/动态链接的静态初始化顺序问题

c++ - 在按降序排序的 vector 中查找严格小于某个键的第一个元素

c++ - 如何访问 C++ 中的特定范围?

c++ - C++11中根据类型要求特化类模板成员函数

c - 为什么 "unused attribute"为结构数组生成警告?

c++ - 基于范围的for循环中的未命名循环变量?

css - 如何从代码库中摇树未使用的样式