我正在尝试使用自定义删除器创建一个 void 的 QScopedPointer,以正确管理来自 C 库的资源(它只向其内部数据结构提供 void*)。但是,当我尝试实例化 void 的 QScopedPointer 时,我收到此错误:
/Library/Frameworks/QtCore.framework/Headers/qscopedpointer.h:104:14:
error: cannot form a reference to 'void'
inline T &operator*() const
(from Clang)
或这个:
/Library/Frameworks/QtCore.framework/Headers/qscopedpointer.h:104:
error: forming reference to void
(from GCC)
我想专门化 QScopedPointer 或使用自定义删除器编写一个基本的作用域指针,但在这两种情况下,我最终都复制了与 QScopedPointer 中完全相同的代码。
有什么办法可以摆脱(或专门化)该特定功能,以便编译器不再抱怨?