https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81371
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- basic_string in C++ is always defined as a template class with three template arguments. Yes most folks don't know the C++ standard but it is what it is.