// PR c++/103049 | |
// P0849R8 - auto(x) | |
// { dg-do compile { target c++23 } } | |
struct X { | |
X() = default; | |
X(const X&) = delete; | |
}; | |
void | |
g () | |
{ | |
X x; | |
+X(x); // { dg-error "use of deleted function" } | |
+auto(x); // { dg-error "use of deleted function" } | |
} | |
class A; | |
void f(A); | |
class A { | |
int x; | |
public: | |
A(); | |
auto run() { | |
f(A(*this)); | |
f(auto(*this)); | |
} | |
protected: | |
A(const A&); | |
}; | |
void z () { | |
A a; | |
a.run (); | |
} |