今天写代码时出现的一个笔误,被单元测试代码给揪了出来,但是我很奇怪为什么这种笔误没有被编译器发现,连一个警告都没有(VC7,四级警告)。
std::string filename("//foo");
filename + '//'; //本意是想写成 filename += '//';
filename += "bar";
“filename + '//'”这句明显是没有意义的,因为表达式的值没有被任何人用到,而参与表达式运算的变量又没有被改变,但它符合C++的语法,所以编译器连一个警告都没有蹦出来,真是很过份。