std :: transform () y toupper (), no hay función de coincidencia
Intenté el código de esta pregunta C ++ std :: transform () y toupper () ... ¿por qué falla esto?
#include <iostream>
#include <algorithm>
int main() {
std::string s="hello";
std::string out;
std::transform(s.begin(), s.end(), std::back_inserter(out), std::toupper);
std::cout << "hello in upper case: " << out << std::endl;
}
eóricamente debería haber funcionado, ya que es uno de los ejemplos en el libro de Josuttis, pero no compilahttp: //ideone.com/aYnf.
Por qué se quejó GCC:
no matching function for call to ‘transform(
__gnu_cxx::__normal_iterator<char*, std::basic_string
<char, std::char_traits<char>, std::allocator<char> > >,
__gnu_cxx::__normal_iterator<char*, std::basic_string
<char, std::char_traits<char>, std::allocator<char> > >,
std::back_insert_iterator<std::basic_string
<char, std::char_traits<char>, std::allocator<char> > >,
<unresolved overloaded function type>)’
¿Me estoy perdiendo de algo? ¿Es un problema relacionado con el CCG?