OSDN Git Service

PR c++/36628
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / g++.dg / cpp0x / named.C
1 // { dg-options "--std=c++0x" }
2 // { dg-do link }
3
4 struct S {};
5 struct T
6 {
7   T(S && s_) : s(s_) {}
8   S && get() { return s; }
9   operator S&&() { return s; }
10   S && s;
11 };
12
13 void named(S const &) {}
14 void named(S&&);
15
16 void unnamed(S const &);
17 void unnamed(S&&) {}
18
19 void f(S && p)
20 {
21   S && s(p);
22   T t(s);
23
24   named(s);                          // variable reference
25   named(p);                          // parameter reference
26   named(t.s);                        // class member access
27
28   unnamed(t.get());                  // function return
29   unnamed(t);                        // implicit conversion
30   unnamed(static_cast<S&&>(s));      // cast to rvalue
31 }
32
33 int main()
34 {
35 }