SDL_Window構造体へのポインタを作成し、それをshared_ptrに割り当てると、前述のエラーが発生します。クラスの不完全な型 'SDL_Window'への 'sizeof'の無効なアプリケーション
パート:
#include <SDL2/SDL.h>
class Application {
static std::shared_ptr<SDL_Window> window;
}
定義:
#include "Application.h"
std::shared_ptr<SDL_Window> Application::window{};
bool Application::init() {
SDL_Window *window_ = nullptr;
if((window_ = SDL_CreateWindow(title.c_str(),
SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED,
window_width,
window_height,
NULL)
) == nullptr) {
std::cerr << "creating window failed: " << SDL_GetError() << std::endl;
}
window.reset(window_);
}
エラーが 'window.reset()' で表示されます。理由は何ですか?この動作を修正する方法は何ですか?
は多分無関係な、しかし、あなたはSDL_DestroyWindow経由で割り当て解除の代わりに、削除する必要はありません。
は、次にテンプレートパラメータを経由してデリータが含まれていますか? – PlasmaHH