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