Здравствуйте, Shmj, Вы писали:
S>- не компилируется. unique_ptr хочет заранее знать какой класс даже в этом случае, не смотря на то, что конструктор только декларирован — ему пофиг.
Потому что дело не только в конструкторе, но и в деструкторе. std::unique_ptr<Class2> деструктор для неполного объекта также не может создать. С деструктором Class1 проделай тоже самое:
сlass Class2;
class Class1
{
public:
Class1();
~Class1();
private:
std::unique_ptr<Class2> ptr;
};
//... тут все тоже самое