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++ - 在构造函数中默认类的结构字段

c++ - 在 std::move() 之后使字符串为空的机制

c# - MSBuild - 将来自 editorconfig 的警告视为错误(在构建期间强制执行)

php - 生成的 CSRF token 太多(PHP),我该如何处理?

c++ - “(void) cast”和 “__attributes__”在沉默未使用的参数警告方面有什么功能区别?

c++ - boost::variant gettor-visitor:保存返回的引用

c++ - 您可以根据大小及其内容生成可变模板包吗?

c++ - OpenGL glutInit() : XOpenDisplay() causing segmentation fault

C++ 迭代器如何实现 next() 和 previous() 函数

c++ - C++ 数组运算符和 *(array + index)(如果有)有什么区别?