这是我在StackOverflow上发布的第一个问题。我遇到了C ++警告来解决。问题是我们在派生类中重写了虚函数,而在重写的函数主体中没有使用一些函数参数。结果,编译器将保持警告状态。在我的带有类层次结构的C ++项目中,这是一个非常普遍的问题。我尝试了以下两种解决方案,并且都可以使用。只是想知道哪一个更金黄色或被广泛使用。或者,如果对此问题还有其他黄金解决方案,请随时提出建议。
void f(int a) {} (WARNING) ==> void f(int a) { (void)a; } (NO WARNING) void f(int a) {} (WARNING) ==> void f(int) {} (NO WARNING)
谢谢!
答案 0 :(得分:2)
所有这三个属性(注释中提到的第三个属性为[[maybe_unused]]
)都很好,选择纯粹是出于审美和主观。
(void)a
对我个人而言意义不大,但是它有很长的传统,在其他一些未使用名称的情况下,与参数一样,省略名称的选择也不同,所以可能唯一的选择(在[[maybe_unused]]
尚不存在的语言的早期版本中。)