----- Mensaje original -----
De: Ovanes Markarian
Hello Joaquín,
today I faced some problem, when debugging the code. [...] When created a view for vx_hash tag and going to change the invalid iteratorlike view.end(). Dereferencing view.end() fails as awaited, but this code which calls my TypeModifier:
view.modify(view.end(), my_modifier);
This will result in my_modifier call with dereferenced iterator, which contains badly initialized object. [...]
Calling modify(end(),...) is illegal just as dereferencing end() is, but that does not mean that you can expect a crash when doing so: as you're invoking undefined behavior anything can happen. If you want to make sure that these illegal operations are properly detected and reported in a predictable way, take a look at Boost.MultiIndex safe mode: http://boost.org/libs/multi_index/doc/tutorial/debug.html#safe_mode (Don't forget to turn it off in release mode). Hope this helps, Joaquín M López Muñoz Telefónica, Investigación y Desarrollo