blob: ebdcc840cc35ed473b90042cd92f9a1ab1ea21c8 [file] [log] [blame]
// PR c++/52748
// N3276
// { dg-do compile { target c++11 } }
struct A; // { dg-message "forward declaration" }
A f();
decltype(f()) g1(); // OK
decltype(((f()))) g2b(); // OK
decltype(42,f()) g3(); // OK
decltype(42,45,f()) g3b(); // OK
decltype(42,45,(f())) g3c(); // OK
decltype(42,((45,(f())))) g3c(); // OK
decltype(f(),42) g4(); // { dg-error "" }
decltype(45,f(),42) g4b(); // { dg-error "" }
class B
{
~B(); // { dg-message "private" }
public:
int i;
void operator[](int);
};
B h();
void i(const B&);
decltype(h()) g5a(); // OK
decltype(h().i) g5(); // { dg-error "" }
decltype(h()[0]) g6(); // { dg-error "" }
decltype(i(h())) g7(); // { dg-error "" }