Why does
template<class InputIterator> basic_string& append(InputIterator first, InputIterator last);
return a string, while
template<class InputIterator> void insert(iterator p, InputIterator first, InputIterator last);
returns nothing ?