在C++11中,未排序的修改警告变为结果未使用的警告



我正在试验这个过滤器库,并从下面的代码片段中得到一个未排序的修改警告。

while (--numSamples >= 0)
    *dest++ = state.process(*dest, *this);

在SO上查看类似的问题是有意义的,因为dest是在同一命令中修改和访问的。所以,我想预期的功能如下。

while (--numSamples >= 0) {
    *dest = state.process(*dest, *this);
    *dest++;
}

然而,这为后增量提供了一个新的、更奇怪的警告"警告:表达式结果未使用"。为什么会出现此新警告,以及我应该如何正确解决此问题?

*dest++递增dest,并取消引用dest的先前值。增量是你想要的副作用,取消引用没有效果。只需将其写成dest++(或++dest)即可。

相关内容

最新更新