我正在试验这个过滤器库,并从下面的代码片段中得到一个未排序的修改警告。
while (--numSamples >= 0)
*dest++ = state.process(*dest, *this);
在SO上查看类似的问题是有意义的,因为dest是在同一命令中修改和访问的。所以,我想预期的功能如下。
while (--numSamples >= 0) {
*dest = state.process(*dest, *this);
*dest++;
}
然而,这为后增量提供了一个新的、更奇怪的警告"警告:表达式结果未使用"。为什么会出现此新警告,以及我应该如何正确解决此问题?
*dest++
递增dest
,并取消引用dest
的先前值。增量是你想要的副作用,取消引用没有效果。只需将其写成dest++
(或++dest
)即可。