我正在使用带有警告级别的g ++ -Wall -Wextra并将警告视为错误(-Werror).
现在我有时会收到错误" 变量可能在此函数中未初始化".
"有时"我的意思是我有两个独立的编译单元,它们都包含相同的头文件.一个编译单元编译没有错误,另一个编译单元给出上述错误.
头文件中的相关代码如下.由于功能很长,我只复制了下面的相关位.
确切的错误是:
'cmpres'可以在此函数中未初始化使用
我在*下面用错误标记了这一行.
for (; ;) {
int cmpres; // *
while (b <= c and (cmpres = cmp(b, pivot)) <= 0) {
if (cmpres == 0)
::std::iter_swap(a++, b);
++b;
}
while (c >= b and (cmpres = cmp(c, pivot)) >= 0) {
if (cmpres == 0)
::std::iter_swap(d--, c);
--c;
}
if (b > c) break;
::std::iter_swap(b++, c--);
}
Run Code Online (Sandbox Code Playgroud)
(cmp是一个算符,它有两个指针x和y与返回-1,0或1,如果 …