const char*不传size,靠null结尾,这是C的搞法。
这种API本来就不太快。
另外,getter完全可以返回const string&
string_view无脑替换的是参数。你getter的对象本来就是一个完整的std::string,那当然没必要返回string_view
【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: 标 题: Re: 居然不能做std::string + std::string_view的操作
: 发信站: 水木社区 (Wed Jun 9 14:24:02 2021), 站内
:
: 另外发现return string_view也挺坑啊
:
: 原来getter回传const std::string&,直接就可以用
:
: 现在回传string_view以后,如果要转换成const char*,不能保证null结尾,如果要转换成std::string还得显示构造一个临时变量,关键是很多标准库的函数都还不接受std::string_view的传入,比如<regex>里面的那些。
:
:
: 【 在 ziqin 的大作中提到: 】
: : string_view这个坑踩吐了,废了好大劲把传进函数的const std::string&换成了std::string_view,结果发现在很大一批函数里要用传进去的字符串拼接其他的std::string,原来干干净净的连+一下刷error刷疯。
: : 原来const std::string&还不用重建一个std::string,现在反而std::string_view需要再复制一个std::string出来。得不偿失啊...
:
: --
:
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 115.192.187.*]
--
FROM 76.126.252.*