欢迎光临散文网 会员登陆 & 注册

C++ 中string类型数据可以被隐式转换成string_view,反之需要显式转换

2021-12-11 18:15 作者:LogByMax  | 我要投稿

记录工作中遇到的问题。

考虑到项目中的一个方法里的输入参数不能被随意改变的需求,想把输入的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=

C++ 中string类型数据可以被隐式转换成string_view,反之需要显式转换的评论 (共 条)

分享到微博请遵守国家法律