我想知道将函数的返回值移动到 std::string 对象而不是直接复制它是否有任何意义?
“ip_str”是应该获取“getp1settings()”返回值的对象:
std::string ip_str = std::move(getp1settings());
下面是“getp1settings”的实现。
std::string SIGDManager::getp1settings() {
DBAutoConnection connection;
...
std::string p1_virtual;
if (reader()) {
reader >> p1_virtual;
}
...
return p1_virtual;
}
所以,我的问题是(就性能而言)将返回值获取到“ip_str”的最佳方法是什么?
? 1. std::string ip_str = std::move(getp1settings());
? 2. std::string ip_str = getp1settings();
A
std::string
可以并且将会从 r 值参考中移动。您不需要 std::move
来转换为右值引用,因为 getp1settings()
已经是 1。