c++boostboost-foreach

Changes to a container while BOOST_FOREACH is iterating through it?


What would happen if a container that BOOST_FOREACH is iterating through is changed inside the BOOST_FOREACH scope?

Does BOOST_FOREACH "freeze" the initial state?


Solution

  • In this case behavior is undefined. Look at Hoisting and Iterator Invalidation in official documentation of BOOST_FOREACH.