代码之家  ›  专栏  ›  技术社区  ›  Antoine Morrier

将rvalue参数作为rvalue引用返回

  •  0
  • Antoine Morrier  · 技术社区  · 6 年前

    在这条线上( Should I return an rvalue reference parameter by rvalue reference? The parameter cannot be a temporary (which is just what rvalue references represent) . 如果我能很好地理解这句话,这个代码应该是不正确的

    #include <string>
    #include <iostream>
    std::string &&f(std::string &&a) {
        return std::move(a);   
    }
    
    int main() {
        std::string a = f("lol");
        std::cout << a << std::endl;
        return 0;
    }
    

    std::get 标准::获取 使用临时元组。

    所以,我想我误解了上面的句子,前面的代码是正确的。然而,这一点并不正确:

    #include <string>
    #include <iostream>
    std::string &&f(std::string &&a) {
        return std::move(a);   
    }
    
    int main() {
        std::string &&a = f("lol");
        std::cout << a << std::endl;
        return 0;
    }
    

    0 回复  |  直到 6 年前