我在C ++上做zlib包装器库。
我的zlib类的头文件如下所示:
#include <zlib.h>
class ZLibCompressor{
protected:
z_stream zs;
};
我可以在目标文件中实现所有内容,但是我需要在类中包含z_stream
作为类成员。
为了能够访问它,我需要包含&#34; zlib.h&#34;。
如果我包含&#34; zlib.h&#34;,它将会污染&#34;污染&#34;具有大量常量的全局命名空间等等,例如Z_OK和许多其他命令。
我能想象的唯一解决方案是像void *
这样的pimpl来分配z_stream
。
但是,如果我这样做,我的代码将变得更加缓慢,我希望这个成员加入类的唯一原因是我可以更好地重用z_stream
句柄。