Beispiel #1
0
S const && ucr() { return movel(l); } // unnamed const rvalue reference (ucr)
Beispiel #2
0
// Generated by overload.py

template<typename _Tp>
inline _Tp&&
movel(_Tp& __t)
{ return static_cast<_Tp&&>(__t); }

struct S{};

S l;                             // lvalue (l)
S const cl = l;                  // const lvalue (cl)
S r() { return l; }              // rvalue (r)
S const cr() { return l; }       // const rvalue (cr)
S & nl = l;                      // named lvalue reference (nl)
S const & ncl = l;               // named const lvalue reference (ncl)
S && nr = movel(l);              // named rvalue reference (nr)
S const && ncr = movel(l);       // named const rvalue reference (ncr)
S & ul() { return l; }           // unnamed lvalue reference (ul)
S const & ucl() { return l; }    // unnamed const lvalue reference (ucl)
S && ur() { return movel(l); }   // unnamed rvalue reference (ur)
S const && ucr() { return movel(l); } // unnamed const rvalue reference (ucr)

void l0001(const S&&) {} // { dg-message "" }

void l0010(S&&) {} // { dg-message "" }

void l0011(S&&) {} // { dg-message "" }
void l0011(const S&&);

void l0100(const S&) {}
Beispiel #3
0
S && ur() { return movel(l); }   // unnamed rvalue reference (ur)
Beispiel #4
0
A&& source() {static A a; return movel(a);}