namespace GL { class Shader final : protected GPU::Shader { public: Shader(gE::Window* window, GPU::Shader&&); Shader() = default; };
Shader::Shader(gE::Window* window, GPU::Shader&& INTERNAL_SETTINGS) : GPU::Shader(move(INTERNAL_SETTINGS)) { [Actually constructs GL::ShaderStage, but I can replicate the issue with just moving GPU::ShaderStage around] GPU::ShaderStage frag = move(FragmentStage); GPU::ShaderStage vert = move(VertexStage);
FragmentStage = move(frag); VertexStage = move(vert); } } [/code] Вот как я создаю объект: [code]GPU::Shader shaderSettings("Resource/Shader/skybox.vert", "Resource/Shader/skybox.frag");
[GL::Shader _skyboxShader = {}] _skyboxShader = GL::Shader(window, move(shaderSettings)); [SIGTRAP when _skyboxShader goes out of scope] [/code] Размещение новых работ: [code]GPU::Shader shaderSettings("Resource/Shader/skybox.vert", "Resource/Shader/skybox.frag");
[GL::Shader _skyboxShader = {}] _skyboxShader.~Shader(); new(&_skyboxShader) GL::Shader(window, move(shaderSettings)); [No error] [/code] Мне хотелось бы думать, что у меня есть опыт работы с C++, но все это просто чушь. Я прошел несколько этапов отладки, но они не дали результатов.