为什么f(int)和f(const int)无法构成重载?
- 用const 修饰传值调用的形参,即实参不被修改。然而由于是传递的是实参副本,这个约定是隐式的!
在函数里,const 有这样的意义:参数不能被改变,所以它其实是函数创建者的工具,而不是函数调用者的工具,而函数重载是函数调用者的操作 - 函数在重载的时候,int和const int、const int&、const int &&不能同时存在,实际上一个int传进 就能够代替以上的三个,所以,要么3,要么1
下面这个代码https://github.com/chenshuo/recipes/blob/master/string/StringTrivial.h
可以观察为什么注释掉string &&