这个确实是标准里一个太不好的地方。希望之后能fix
但是“得不偿失”是不存在的。你本来用+的时候就需要复制原来的string
当前比较简单的做法是用absl::StrCat(a, b, c, ...)
一般来说如果使用这个库的话不再推荐用+,因为+很容易出现各种坑。
如果不使用absl库的话可以:
string result = a;
a.append(b);
a.append(c);
这里的append是支持string_view的
【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: 标 题: 居然不能做std::string + std::string_view的操作
: 发信站: 水木社区 (Mon May 31 01:53:41 2021), 站内
:
: 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.193.190.*]
--
FROM 76.126.252.*