A C++ standard library function shall not directly or indirectly modify
objects (
[intro.multithread]) accessible by threads other than the current thread
unless the objects are accessed directly or indirectly via the function's non-const
arguments, including
this.