动机:

我有一个功能

func(const string& s);
{
    //...
}


当然,这行不通:

func("hello" + " " + "world");


这解决了这个问题:

func(string&& s);


有没有一种写func的方法,使其可以自动与r值引用和l值引用一起使用?

最佳答案

Rvalues可以毫无问题地绑定到const lvalue refs。您的代码的问题在于类型。要使用重载的operator +,您至少需要一个std::string

func(std::string("hello") + " " + "world");

关于c++ - 有没有一种方法可以编写将l-val ref或r-val引用作为输入参数的函数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8014241/

10-15 06:52