std::vector::emplace_back(...)
От: HolyNick  
Дата: 17.07.14 14:05
Оценка:
Добрый день.
Никто не подскажет почему такой код компилируется только когда у 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);


Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.