抑制代码内部的 "unused parameter" 警告
Supressing "unused parameter" warning inside of code
我想在代码中抑制未使用的参数警告。
我的第一个方法是:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *UNUSED(event))
{
MousebuttonHold = false;
updateGL();
return;
}
其中定义如下:
#define UNUSED(NAME) USE_IT(NAME)
#define USE_IT(NAME) UNUSED_ ## NAME
这没有用。经过一些 SO 研究后,我发现在 C++ 中我可以做到:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent)
{/*...*/}
好吧,这完美地解决了警告问题,但现在......
mouseReleaseEvent()
根本不再触发。
所以这对我也不起作用。
那么我还有哪些其他方法可以通过代码变体来抑制警告?
这是因为QWidget::mouseReleaseEvent的参数是一个指针。您必须保留 *:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent*)
{
// Your code
}
解决方案 #1 – 未命名参数:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *)
解决方案 #2 – Qt Q_UNUSED
宏:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *event)
{
Q_UNUSED(event)
// Your code...
}
实际上,这个宏是define下一个方法:
解决方案 #3 – C 方式:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *event)
{
(void)event;
// Your code...
}
我想在代码中抑制未使用的参数警告。
我的第一个方法是:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *UNUSED(event))
{
MousebuttonHold = false;
updateGL();
return;
}
其中定义如下:
#define UNUSED(NAME) USE_IT(NAME)
#define USE_IT(NAME) UNUSED_ ## NAME
这没有用。经过一些 SO 研究后,我发现在 C++ 中我可以做到:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent)
{/*...*/}
好吧,这完美地解决了警告问题,但现在......
mouseReleaseEvent()
根本不再触发。
所以这对我也不起作用。
那么我还有哪些其他方法可以通过代码变体来抑制警告?
这是因为QWidget::mouseReleaseEvent的参数是一个指针。您必须保留 *:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent*)
{
// Your code
}
解决方案 #1 – 未命名参数:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *)
解决方案 #2 – Qt Q_UNUSED
宏:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *event)
{
Q_UNUSED(event)
// Your code...
}
实际上,这个宏是define下一个方法:
解决方案 #3 – C 方式:
void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *event)
{
(void)event;
// Your code...
}