The C++ Hustle : std::tolower() — not all cases are created equal

Do compilers Clang or GCC produce optimal code for string operations?