读书人

transform(s.begin(), s.end(), s.beg

发布时间: 2013-08-04 18:26:16 作者: rapoo

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的帖子也有解释。

读书人网 >编程

热点推荐