или поздно?
class Manager {
private:
Manager() {
capi_init();
}
static Managet& instance() {
static Manager manager;
return manager;
}
public:
static some_resource* get_resource() {
(void)instance();
return capi_get_resource();
}
};
А зачем эти костыли? Сделай метод у manager и вызывай capi_get_resource
есть либа и она как модуль, то есть к main доступа нет, но ресурс перед использованием инициализировать надо и надо это сделать только 1 раз
Так не плоди статики, просто расширяй интерфейс manager
Что не понятно?
то есть расширять? мне бы вообще по хорошему от Manager избавиться
тут в принципе сделано странно обычно такой синглтон с ленивой инициализацией применяется, когда всем в целом пофиг, создан объект или нет а тут кому-то внезапно не пофиг стало и он решил положиться на деталь реализации вашего синглтона короче лично я бы поднял жирный вопрос на код ревью про такое
Обсуждают сегодня