transform(s.begin(), s.end(), s.begin(), tolower)错误
为了在google的chromium代码里面加些东西,自己在乱七八糟的添加代码,但是一编译,发现这么个奇怪的问题,报说(代码在webkit_glue.cc中):
引用std::transform(target1.begin(), target1.end(), target1.begin(), tolower);
没有能够找到对应的函数tolower, 也就是说tolower有歧义,这就有点奇怪了,但转念一想,估计是自己没有注意,在那个地方加入了<ctype>或者其他某个地方有<locale>,从而导致两者歧义了。
解决的方法也很简单,只需要指定一个即可,比如我们用 ::tolower 来代替 tolower.
哦,这个stackoverflow的帖子也有解释。