ALL,
У меня есть функция со следующей сигнатурой:
void foo(const std::vector<Bar *> &myvec);
Внутри этой функции мне нужно пройти через элементы вектора и выполнить некоторые операции.
Итак, я попробовал это:
for( std::vector<Bar *>::const_iterator it = myvec.begin(); it < myvec.end(); ++it )
{
// modify properties of Bar * pointer
(*it)->SetSomeValue( baz );
}
однако этот код утверждает, поскольку итератор является постоянным.
Теперь, очевидно, вектор является постоянным, что означает, что функция не должна бытьизменение myvec.
Какое здесь лучшее решение?
Могу ли я использовать const_cast здесь для удаления константности?Это было бы хакерством, но если это сработало.
Но я чувствую, что должно быть лучшее решение.
TIA !!