Re[12]: Почему CLion и VS не предупреждают?
От: so5team https://stiffstream.com
Дата: 04.05.23 08:39
Оценка:
Здравствуйте, T4r4sB, Вы писали:

S>>Если не брать в рассмотрение placement new, то разве что для создания объектов с private/protected конструкторами.


TB>Мне казалось что для этого используются статик методы, создающие объект


Простенький пример:
#include <memory>

class manager;

class worker {
    friend class manager;

    int i_;
    worker(int v) : i_{v} {};
public:
    int i() const noexcept { return i_; }
};

class manager {
public:
  int do_something() {
    std::unique_ptr<worker> in{ new worker(0) };
    return in->i_;
  }
};

int main() {
    manager o;
    return o.do_something();
}


В manager::do_something не получится использовать std::make_unique, т.к. конструктор у worker-а приватный.
И не важно, будет ли do_something статическим или нет.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.