¿Cómo convertir std :: string a minúsculas?

Quiero convertir un std::stringa minúscula. Soy consciente de la función tolower(), sin embargo, en el pasado he tenido problemas con esta función y de todos modos no es lo ideal, ya que usarla con std::stringrequeriría iterar sobre cada carácter. ¿Existe alguna alternativa que funcione el 100%...