gpt4 book ai didi

c++ - 为什么我的 unique_ptr 认为它有一个空函数指针删除器?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:30 26 4
gpt4 key购买 nike

<分区>

我正在尝试使用 C++ 学习 SDL。我创建了一个 window.h header 和一个 window.cpp 源文件来存储 Window 类。在 window.h 中,它看起来像这样:

Class Window {
public:
Window();
. . .
private:
std::unique_ptr<SDL_Window, void (*)(SDL_Window*)> window;
std::unique_ptr<SDL_Renderer, void (*)(SDL_Renderer*)> renderer;
. . .
}

省略了类中的一些代码。然后,在我的源文件中,在默认构造函数的定义中,我这样做:

Window::Window() {
window = std::unique_ptr<SDL_Window, void (*)(SDL_Window*)>(nullptr, SDL_DestroyWindow);
renderer = std::unique_ptr<SDL_Renderer, void (*)(SDL_Renderer*)>(nullptr, SDL_DestroyRenderer);
}

但是,当我去编译时,我被告知 unique_ptr [is] constructed with null function pointer deleter,据我所知这是错误的。也许我误解了如何使用 unique_ptr 的删除器,但我无法弄清楚哪里出了问题。我是否遗漏了什么或者我是否完全误解了我在做什么?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com