VS2010正常,Gcc编译异常,咋回事

VS2010正常,Gcc编译错误,怎么回事啊
C/C++ code

transform(tmp2.begin(), tmp2.end(), tmp2.begin(), tolower);
 
就是这上面这句代码。
提示:
error: no matching function for call to 'transform(std::basic_string<char>::iterator, std::basic_string<char>::iterator, std::basic_string<char>::iterator, <unresolved overloaded function type>)'



------解决方案--------------------
static_cast<int (*)(int)>(std::tolower)
http://stackoverflow.com/questions/1350380/problems-using-stl-stdtransform-from-cygwin-g
http://gcc.gnu.org/ml/libstdc++/2002-11/msg00180.html
locale什么的真麻烦……