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/

相关文章:

objective-c - -Wunused-value 警告的奇怪行为

c++ - 在新线程中访问 move 的 std::string

c++ - std::vector 是一个非常规类型,因为它的赋值运算符移动了它的成员的位置

c++ - 从服务器响应解析 utf8 字符串

c++ - 有没有用 C++ 编写的开源 PDF 打印机?

c++ - 非常量指针更喜欢 const T& 重载而不是 const T*

c++ - 自动类型检测是否只查看一个语句

c++ - 从 C++ 文件中删除无用的行

c++ - 使用 openmp 并行 block 中的预编译语句避免未使用的变量警告

c++ - 发送的参数与函数 def 不匹配