Я попробовал код из этого вопроса C++ std::transform() и toupper().. почему это не получается?
#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;
}
Теоретически он должен был работать как один из примеров в книге Джозуттиса, но он не компилируется http://ideone.com/aYnfv.
Почему 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>)
Я что-то здесь упускаю? Это проблема, связанная с GCC?