Добрый день.
Никто не подскажет почему такой код компилируется только когда у Foo определен конструктор копирования, при этом он не вызывается.
Когда конструктор копирования отсутствует, "ругается на" (что он delete) конструктор копирования fstream.
class Foo
{
public:
Foo(){}
Foo(const Foo& f){}
private:
std::fstream f;
};
class Bar
{
public:
Bar(int i){}
Foo foo;
};
std::vector<Bar> v;
v.emplace_back(5);