Я делаю что-то похожее на этот элемент Правильное использование BOOST_FOREACH?
Однако мой возвращенный список обернут в boost :: shared_ptr.Если я не назначу список переменной до цикла BOOST_FOREACH, я получаю сбой во время выполнения, поскольку список разрушается, поскольку он временный.
boost::shared_ptr< list<int> > GetList()
{
boost::shared_ptr< list<int> > myList( new list<int>() );
myList->push_back( 3 );
myList->push_back( 4 );
return myList;
}
Потом позже ..
// Works if I comment out the next line and iterate over myList instead
// boost::shared_ptr< list<int> > myList = GetList();
BOOST_FOREACH( int i, *GetList() ) // Otherwise crashes here
{
cout << i << endl;
}
Я бы хотел использовать вышесказанное, не вводя переменную myList.Это возможно?