, но это не может разрешить перегрузку, если вы делаете.

робовал код из этого вопроса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?

Ответы на вопрос(1)

Ваш ответ на вопрос