don't use register storage specifier anymore
C++ standard library portability improvements (tested against libc++)
no more direct use of std::_Select1st