Я пытаюсь определить глобальное определение общего указателя в пространстве имен, чтобы каждый класс в этом пространстве имен мог использовать их. Эти указатели определены в cpu_consts.h (cpu - это пространство имен). Я знаю, что внешние переменные должны быть определены вне функции / пространства имен. Это делается в cpu_class.cpp, поскольку это класс, который включает все классы в пространстве имен. Как мне предопределить shared_ptr?
Класс Register также находится в пространстве имен процессора.
Я уже пробовал предопределять int, что работает:
#include <iostream>
#include "cpu_class.h"
int cpu::yote;
namespace cpu {
...
}
cpu_consts
#pragma once
#include <iostream>
#include <memory>
namespace cpu {
class Registers;
extern int yote;
extern std::shared_ptr<Registers> registerPointer;
extern Registers challas;
}
cpu_class.cpp
#include <iostream>
#include "cpu_class.h"
int cpu::yote;
... predefine shared_ptr how ?? Registers cpu::challas does not work
namespace cpu {
...
}