ベクターとそのデータの所有権を渡したり譲渡したりする最良の方法は何ですか?
理想的な世界では、次のように機能します。
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
(C++11 の unique_ptr は使えません!)