В моем проекте у меня есть некоторые функции, такие как
std::tuple<VAO, Mesh, ShaderProgram> LoadWavefront(std::string filename);
Что я могу использовать следующим образом:
VAO teapotVAO;
Mesh teapotMesh;
ShaderProgram teapotShader;
std::tie(teapotVAO, teapotMesh, teapotShader)
= LoadWavefront("assets/teapot.obj");
Проблема заключается в том, что для каждого из этих классов требуется конструктор по умолчанию, который создает их в недопустимом состоянии, которое подвержено ошибкам. Как мне обойти это без необходимости std::get<>
каждого элемента? Есть ли элегантный способ сделать это?