n4868 22.2.3 В таблице 77 Требования к контейнеру последовательности гласит, что вставка (итератор POS, size_type Count, значение t) требует, чтобы t было copyinsertable и copyAssignable в любом контейнере последовательности. Это означает, что не может быть сделано никаких движений или свопов, чтобы сдвинуть элементы, если POS уже занят.
Вопрос в том, как Std :: vector ситуации обрабатывают ситуации, когда у него достаточно места для вставки n -элементов, и ему необходимо сдвинуть элементы, указанные pos ? Всегда ли это перераспределяет память, независимо от T на T? Или он использует конструктор/назначение копирования для сдвига элементов, а затем назначает их в обязательное место? Если так, сдвигается ли это только тогда, когда конструкция/назначение копии не бросает?
Подробнее здесь: https://stackoverflow.com/questions/797 ... yinsertabl