I believe that since C++11, the erase function of most containers (e.g. std::vector) accepts a const_iterator as parameter:
This issue is documented here and it's reported as a partial implementation for now.
CTRL + F with your browser and search for N2350.
If you are on Linux it's possible to build a development version of the libcxx library from the LLVM project that you can download from here; I don't know if this solves any of the issues that you are experiencing but I'm proposing it as an alternative to the libstdc++.