I want to erase an element from a container which is being currently used within a ranged-based for loop. Will this cause undefined behaviour? Or will the next value of
It should be a undefined behavior. Because according to 14882/2011 the range-based for statement is equivalent to:
auto && __range = range-init; for ( auto __begin = begin-expr(__range), __end = end-expr(__range); __begin != __end; ++__begin ) { for-range-declaration = *__begin; statement }