Implementing basic_string::substr in msvcp90