C++17增加了as_const,可以将左值转成const类型,返回的是const引用类型:
#include <iostream>
#include <utility>
using namespace std;
int main()
{
string str = "str";
const string& constStr = as_const(str);
cout<<&str<<endl;
cout<<&constStr<<endl;
return 0;
}
运行程序输出:
0x64fde0
0x64fde0
可见通过as_const返回的常量引用对象constStr与源对象str是同一个对象
但是constStr是常量对象,不能对其进行赋值操作