C++ ref-qualifiers使用

2018-09-25  本文已影响0人  Little熊猫

一 左值和右值

lvalue = rvlaue
class A a = A();
这个里面 a是左值,A()就是右值

二 ref-value qualifier.

struct X
{
      //can be invoked on lvalue
      void f() & { std::cout << "f() &" << std::endl; }

      //can be invoked on rvalue
      void f() && { std::cout << "f() &&" << std::endl; }
};

X x;

x.f();  //invokes the first function
        //because x is a named object, hence lvalue

X().f(); //invokes the second function 
         //because X() is an unnamed object, hence rvalue

输出:

f() &
f() &&
上一篇下一篇

猜你喜欢

热点阅读