假设我有这样的东西:
struct Foo
{
void Bar (std::vector <int> &vec) ;
std::vector <int> m_vec ;
};
void Foo::Bar (std::vector <int> &vec)
{
// Do stuff...
m_vec = std::move (vec) ;
}
有什么方法可以模拟 m_vec = std::move (vec) ;
行吗? ?假设传入的 vec
是在堆栈上分配的。
最佳答案
也许是这样的:
void Bar(std::vector<int> & vec)
{
m_vec.swap(vec);
std::vector<int>().swap(vec); // clear "vec"
}
关于c++ - 不使用 C++11 移动 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22692039/