Jak przekonwertować std :: string na małe litery?

Chcę przekonwertować std::stringna małe litery. Zdaję sobie sprawę z tej funkcji tolower(), jednak w przeszłości miałem problemy z tą funkcją i nie jest ona idealna, ponieważ używa się jej zstd::string wymagałoby iteracji nad każdą postacią. Czy istnieje alternatywa, która działa w 100%...