In the following code, why does list_front change after calling gen_list a second time? gen_list is creating a new list, how does that change a previous list head?
#include <iostream>
#include <list>
std::list<int> gen_list()
{
static int s_count = 0;
std::list<int> result;
for (int i = 0; i < 5; i++)
{
result.push_back(s_count++);
}
return result;
}
int main()
{
const auto& list_front = gen_list().front();
std::cout<<list_front<<"\n";
gen_list();
std::cout<<list_front<<"\n";
}
result:
0
9