Как лучше всего передать право собственности на вектор и его данные?
В идеальном мире это работало бы примерно так:
std::vector<int>& SpitAVector(int input)
{
std::vector<int> result;
result.push_back(input);
return result;
}
int main()
{
std::vector<int> myvec;
myvec = SpitAVector(60);
std::cout << (int)myvec[0] << std::endl; //Outputs 60
}
Это не работает, поскольку я возвращаю ссылку на локальную переменную.
Можно ли использовать boost::unique_ptr
или boost::shared_ptr
для обработки этого векторного вывода? (Нельзя использовать unique_ptr в C ++ 11!)