为什么从函数返回左值的结果是函数std::vector<int> v中的对象与函数中main()返回的对象具有相同的内存地址,即使这些对象存在于不同的堆栈帧中?std::vector<int> vecget_vec()
为什么没有调用移动构造函数?
#include <iostream>
#include <vector>
std::vector<int> get_vec()
{
std::vector<int> vec = { 1, 2, 3, 4, 5 };
std::cout << "get_vec():\n" << &vec << '\n' << vec.data() << "\n\n";
return vec;
}
int main()
{
std::vector<int> v = get_vec();
std::cout << "main():\n" << &v << '\n' << v.data() << "\n\n";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
get_vec():
0x7a07ee93baa0
0x226b290
main():
0x7a07ee93baa0
0x226b290
Run Code Online (Sandbox Code Playgroud)