有没有办法声明函数的输入参数必须是const引用?

NoS*_*tAl 0 c++ const

这样做的动机是(很少)我需要知道类构造函数或函数的输入参数通常是const.通常当类是帮助程序"自动化"某些过程时.
示例:
这是从容器中获取随机元素的OK范围方法吗?
如果查看代码,很明显,如果更改传递给构造函数的容器,则以后类功能会被破坏.那么有没有办法让函数"需求"const而不是"promise"const.

例:

int f(const vector<int>& v)
{
    return v.size();
}
int main()
{
    vector<int> v;
    v.push_back(42); // can f be changed to reject v because it is not const 
    cout << f(v);

}
Run Code Online (Sandbox Code Playgroud)

Ray*_*hen 5

声明但不实现非const版本.

int f(vector<int>& v);
Run Code Online (Sandbox Code Playgroud)

尝试传递非const向量将被解析为此函数,然后您将收到链接器错误,因为不存在此类函数.

一些花哨的模板游戏可能会把它变成编译时错误.