У меня есть вектор объектов. Каждый объект имеет boost::shared_ptr
для не копируемого объекта (boost::signal
). конструктор объекта по умолчанию создает объект boost :: signal.
struct FuncRef
{
typedef boost::signal0<void, > Func;
boost::shared_ptr <Func> function;
FuncRef():
function(new Func)
{
}
};
Чтобы мой вектор содержал X отдельных объектов, я сделал это: -
vec.resize(X);
Это не сделало то, что я ожидал, потому что он использует конструктор по умолчанию для создания одного объекта, а затем конструктор копирования для создания дубликатов. Я получаю X объектов, но все они указывают на один и тот же boost::signal0
объект.
Есть ли более простой способ правильно построить мой вектор, чем просто использовать push_back
в цикле for
?