【发布时间】:2018-01-31 09:29:46
【问题描述】:
我有这段代码可以将几个字符串变成小写(参见this SO post)。
void some_free_standing_function(std::string solver, std::map<std::string, option_t> opts) {
for (auto & c : solver) c = tolower(c);
for (auto p : opts)
for (auto & c : p.first)
c = tolower(c);
}
第一个基于范围的for 似乎可以编译,最后一个没有:Clang 给了我error: cannot assign to variable 'c' with const-qualified type 'const char &'。
既然它们完全相同,为什么第一个通过但第二个不通过?
【问题讨论】:
-
OT:如果它会编译它仍然没有用,因为你修改了原始地图的副本。
标签: c++ string c++11 dictionary