c++ - 智能指针的语法
问题描述
在此声明中为唯一指针
std::unique_ptr<SDL_Window, void(*)(SDL_Window*)> window_;
我找不到任何具有这种贬义的资源,所以我的猜测是我们创建了一个指针并将其传递给函数,返回值存储在 window_
解决方案
不,这只是声明变量window_
,根本没有初始化它。
您正在寻找的资源在这里:
template<
class T,
class Deleter = std::default_delete<T>
> class unique_ptr;
它只是声明一个带有非默认删除器的唯一 ptr:该void(*)(SDL_Window*)
部分是函数指针的类型,这意味着在初始化时必须传入正确的删除器函数window_
。
如果只使用了一个删除函数,最好将其设为仿函数,其中函数是仿函数类型的静态方法,不需要传递给构造函数。
推荐阅读
- python - Python - 元组超出范围
- python-3.x - 在pyspark中使用窗口函数sql
- php - PHP SESSID 在每次页面加载时重置
- c - 类 UNIX 操作系统上二进制文件的最少内存使用量是多少?
- reactjs - 在不从父级传递的情况下访问子级引用
- odata - Sharepoint 2013 REST API GetFolderByServerRelativeUrl 不会返回作者详细信息
- python - 基于列值重复数据帧的行
- session - Java EE 的自定义状态管理
- python - pip install urllib3 挂在“由于 etag 缓存”
- c++ - 为什么radare2为非空main()返回一个空的导入列表?