为什么不是zlibs z_stream :: next_in const?

时间:2016-02-08 08:54:43

标签: c++ qt zlib

我目前正在将代码从另一个堆栈溢出问题uncompresses data from a QByteArray集成到应用程序中。

由于我们启用了所有编译器错误,我们必须reinterpret_cast和const_cast QByteArray :: data():

z_stream strm;
strm.next_in = reinterpret_cast<Bytef *>(const_cast<char *>(data.data()));

为什么这个输入参数是非常量的?在我看来,这表明,数据以某种方式被修改,这绝对不是我想要的,也不是我认为实际发生的事情。

1 个答案:

答案 0 :(得分:6)

默认情况下,z_stream接口函数不是const,可能是出于遗留原因。

您可以使用const运行configure来构建具有--const支持的zlib。