我目前正在整合来自另一个堆栈溢出问题的代码,即 uncompresses data from a QByteArray
进入应用程序。
由于我们启用了所有编译器错误,我们必须重新解释 QByteArray::data() 的 const_cast 和 const_cast:
z_stream strm;
strm.next_in = reinterpret_cast<Bytef *>(const_cast<char *>(data.data()));
为什么这个输入参数是非常量的?在我看来,这表明数据以某种方式被修改,这绝对不是我想要的,也不是我认为实际发生的情况。
最佳答案
默认情况下,z_stream
接口(interface)函数不是const
,大概是出于遗留原因。
您可以构建带有 const
支持的 zlib,但是通过使用 --const
运行 configure
。
关于c++ - 为什么 zlibs z_stream::next_in 不是常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35265568/