Учитывая следующий простой код:
list<MyClass> m_listOfOBjects;
....
MyClass* ptrToMyClass;
BOOST_FOREACH(MyClass object, m_listOfObjects)
{
ptrToMyClass = &object
}
Мой вопрос, указывает ли ptrToMyClass на временный объект или на реальный объект в списке. Если это первый случай, есть ли какой-нибудь способ получить указатель на объект в списке вместо временной переменной, созданной циклом BOOST_FOREACH?
Как декларация MyClass object
, object
будет копия, а не объект в списке. Попробуйте использовать ссылку,
BOOST_FOREACH(MyClass& object, m_listOfObjects)
{
ptrToMyClass = &object;
}
Других решений пока нет …