为什么 zlibs z_stream::next_in 不是常量?
Why isn't zlibs z_stream::next_in const?
我目前正在将来自另一个堆栈溢出问题的代码 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()));
为什么这个输入参数是非常量的?在我看来,这表明数据以某种方式被修改,这绝对不是我想要的,也不是我认为实际发生的事情。
默认情况下 z_stream
接口函数不是 const
,大概是出于遗留原因。
您可以构建带有 const
支持的 zlib 但是 运行 configure
带有 --const
.
我目前正在将来自另一个堆栈溢出问题的代码 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()));
为什么这个输入参数是非常量的?在我看来,这表明数据以某种方式被修改,这绝对不是我想要的,也不是我认为实际发生的事情。
默认情况下 z_stream
接口函数不是 const
,大概是出于遗留原因。
您可以构建带有 const
支持的 zlib 但是 运行 configure
带有 --const
.