std::move的实践,解决某些对象只能被move拒绝copy的特点

331 阅读1分钟

使用,在函数中创建一个sw::redis::Redis对象,但是在函数栈外接收它

sw::redis::Redis redis = initRedisCPP(URL);

定义
注意看返回值形式,以及return std::move()将栈变量转右值

sw::redis::Redis initRedisCPP(const std::string& url)
{
    sw::redis::Redis redis(url);
    return std::move(redis);
}

**注意**以下也返回右值,取巧办法,返回临时对象

sw::redis::Redis initRedisCPP(const std::string& url)
{    
    return sw::redis::Redis redis(url);
}