C++ 中string类型数据可以被隐式转换成string_view,反之需要显式转换
记录工作中遇到的问题。
考虑到项目中的一个方法里的输入参数不能被随意改变的需求,想把输入的string类型参数变成string_view, 但是由于该方法内部有别的函数要改变这个string输入参数,运行时被提示不能对string_view的参数进行更改。
string类型数据可以被隐式/显示转换成string_view类型,
eg.
#include <iostream>
int main()
{
std::string c = "c";
std::string_view v;
v = c;
std::cout << v << std::endl;
return 0;
}
但string_view类型的数据不能被隐式转换成string类型,需要显式转换
eg.
int main()
{
std::string c = "c";
std::string_view v;
v = c;
std::cout << v << std::endl;
std::string n;
n = static_cast<std::string>(v) + c;
std::cout << n << std::endl;
return 0;
}
=reference=
[1]https://zhuanlan.zhihu.com/p/98089982
=End=