Здравствуйте, Bell, Вы писали:
B>Что тут одни телепаты?
Видимо, да. Сам немного удивлён, но я получил ответ на свой вопрос. Всем ответившим спасибо
Минимальный неработающий код, к сожалению, невозможен. Всё это происходит в моём классе, который использует и list, и map и т.д, и т.п.
+ multithreading. Ошибка вылетает через несколько часов стабильной работы. Что тут ещё подробнее скажешь?
Больше интересовало — правомерно ли использование итератора и end() после вставки. Поэтому реакция ответивших была самым лучшим ответом

Понял, что правомерно, так что ищу ошибку в другом месте.
Но, если можно, ещё вопрос:
не могу разобраться со splice. Правомерно ли после него использовать итератор, не участвовавший в splice?
void splice(iterator where, list& right, iterator first);
В частности тот, который where.