当我需要玩const std::string &
时,我总是更喜欢std::string
。但是最近,我突然发现根本不需要使用const std::string &
。 std::string_view
对于只读字符串会更好,而仅std::string
与move
会在其他方面(设置字符串字段等)更好。
// Read-only string example
bool foo(std::string_view bar) {
return bar == "baz";
}
// Non read-only string example
void MyClass::foo(std::string bar) {
this->baz = std::move(bar);
}
在以上两种情况下,const std::string &
并不是最佳选择!
因此,我决定删除所有const std::string &
,并用其中之一替换。所以我的问题是:
const std::string &
会变得更好吗?const std::string &
吗?谢谢。