我尝试了这个问题的代码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;
}
Run Code Online (Sandbox Code Playgroud)
从理论上说,它应该是Josuttis书中的一个例子,但它不编译http://ideone.com/aYnfv.
为什么海湾合作委员会抱怨:
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>)’
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?是GCC相关的问题吗?