Я делаю что-то похожее на этот элемент Правильное использование BOOST_FOREACH?
Однако мой возвращенный список заключен в усиление :: shared_ptr. Если я не назначу список переменной перед циклом BOOST_FOREACH, я получу сбой во время выполнения, поскольку список разрушается, поскольку он временный.
boost::shared_ptr< list > GetList()
{
boost::shared_ptr< list > myList( new list() );
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 > myList = GetList();
BOOST_FOREACH( int i, *GetList() ) // Otherwise crashes here
{
cout << i << endl;
}
Я хотел бы быть возможность использовать вышеуказанное, не имея чтобы ввести переменную myList. Возможно ли это?