Путаница в пространстве имен C++ – std:: vs :: vs нет префикса при вызове tolower?C++

Программы на C++. Форум разработчиков
Anonymous
Путаница в пространстве имен C++ – std:: vs :: vs нет префикса при вызове tolower?

Сообщение Anonymous »

Почему это?

Код: Выделить всё

transform(theWord.begin(), theWord.end(), theWord.begin(), std::tolower);
- не работает

Код: Выделить всё

transform(theWord.begin(), theWord.end(), theWord.begin(), tolower);
- не работает
но

Код: Выделить всё

transform(theWord.begin(), theWord.end(), theWord.begin(), ::tolower);
— работает
TheWord — это строка. Я использую пространство имен std;
Почему оно работает с префиксом ::, а не с префиксом std:: или вообще без него?

Подробнее здесь: https://stackoverflow.com/questions/665 ... to-tolower

Вернуться в «C++»