Jako przykład:
string s = "123";
s.assign(find(s.begin(),s.end(),'2'), s.end());
Czy zdefiniowano zachowanie powyższego kodu? Czy prowadzi to do nieokreślonego zachowania?
Tak. Ta wersja przypisania jest zdefiniowana jako
template<class InputIterator> constexpr basic_string& assign(InputIterator first, InputIterator last);
Ograniczenia : InputIterator to typ, który kwalifikuje się jako iterator wejściowy.
Efekty : Równoważne do: return assign (basic_string (first, last, get_allocator ()));
który pokazuje tymczasowe obliczone przed dokonaniem zmian.