gpt4 book ai didi

c++ - 如何抑制 C++ 中的个别警告?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:14:31 24 4
gpt4 key购买 nike

首先,如果这是一个显而易见的问题,我深表歉意,但我对 C++ 还是个新手。另外,这段代码最初不是我的,但我正在尝试清理它。


我正在寻找一种独立于编译器的方法来抑制特定行的警告(最好)。我有以下代码:

int MPtag::state_next( int i, int s ){
#if NGRAMS==2
return s+1;
#elif NGRAMS==3
return tag_at(i,0) * num_tags + s+1;
#elif NGRAMS>=4
return tag_at(i,-1) * num_tags*num_tags + tag_at(i,0)*num_tags + s+1;
#endif
}

NGRAMS 当前设置为 2。

G++ 给了我一个警告(当然有适当的偏执选项)参数“i”未被使用。虽然这在技术上是正确的,但情况并非总是如此。我考虑过注释掉变量名,但是如果要更改 NGRAMS,它将产生编译器错误,直到取消注释为止;这是不可取的。

oldest answer for related question提出了一个宏,但另一位发帖者说它不是独立于编译器的。我读过关于 #pragma warning 但 AFAICT 那是 VS C++ 的东西。有没有合适的方法来做到这一点?

最佳答案

对于那个特定的警告,你总是可以作弊:

#define UNREFERENCED_PARAMETER( x ) ( x )

然后在你的代码中

int a( int b, int c )
{
UNREFERENCED_PARAMETER( c );
return b * b;
}

关于c++ - 如何抑制 C++ 中的个别警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2198471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com