ho:: tolower vs differenza std :: tolower
using namespace std;
vector<char> tmp;
tmp.push_back(val);
...
Ora in cui provo
transform(tmp.begin(), tmp.end(), tmp.begin(), std::tolower);
Non riesce a compilare, ma questo compila:
transform(tmp.begin(), tmp.end(), tmp.begin(), ::tolower);
Qual è il problema con std::tolower
? Funziona con un argomento, ad esempio, compila std::tolower(56)
. Grazie!
correlati/duplicato: http://stackoverflow.com/q/5270780/ (vedi la seconda risposta http: // StackOverflow. it/a/5270970 /) – dyp
@dyp Quindi se 'std :: lower' ha bisogno di due argomenti, come mai' std :: tolower (56) 'funziona? – hovo
'std :: tolower' è sovraccarico, ci sono due funzioni (una [funzione dalla libreria C] (http://en.cppreference.com/w/cpp/string/byte/tolower) prendendo un argomento e [uno function template] (http://en.cppreference.com/w/cpp/locale/tolower) che accetta due argomenti) con il nome 'tolower' nel namespace' std'. Nel namespace globale, se c'è qualcosa, allora è solo il 'tolower' della libreria C che prende un argomento. – dyp