move constructor
The other day I found out that MSVC's std::map move constructor doesn't have noexcept:
map(map&& _Right) : _Mybase(_STD move(_Right)) {}
This means that it can throw when moved and it's not eligible for move_if_noexcept
which is used in vector reallocation's. I filed a report but it got rejected. Take care when you want map's to be moveable (which can be a factor compared to copying all nodes).