История изменений
Исправление Ivan_qrt, (текущая версия) :
«Creates a new instance of std::shared_ptr»
Ты создаёшь шаредптр, дёргаешь атомарные счётчики и т.п. просто чтобы сразу его удалить. В чём смысл? Простого reinterpret_cast тут достаточно.
Но вообще лучше делай forward_declaration, как тебе предлагали выше. Оно и проще и удобнее.
#include <fmt/printf.h>
#include <stdint.h>
#include <memory>
struct Test; //<- Forward declaration.
std::shared_ptr<Test> g_ptr;
struct Test {
uint32_t i;
uint32_t j;
};
int main() {
g_ptr = std::make_shared<Test>(1, 2);
fmt::print("{}, {}.\n", g_ptr->i, g_ptr->j);
}
Исходная версия Ivan_qrt, :
«Creates a new instance of std::shared_ptr»
Ты создаёшь шаредптр, дёргаешь атомарные счётчики и т.п. просто чтобы сразу его удалить. В чём смысл? Простого reinterpret_cast тут достаточно.
Но вообще лучше делай forward_declaration, как тебе предлагали выше. Оно и проще и удобнее.