https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94333
Martin Liška <marxin at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |marxin at gcc dot gnu.org
Status|UNCONFIRMED |NEW
Last reconfirmed| |2020-03-26
Ever confirmed|0 |1
--- Comment #1 from Martin Liška <marxin at gcc dot gnu.org> ---
Confirmed, started with r9-4045-g0c1e0d63fe0ceabb.
Before that it was rejected with:
pr94333.cc:7:45: error: lambda-expression in unevaluated context
7 | static yes check(U u) requires(requires{[](auto u){auto [a, b] =
u;}(u);});
| ^
pr94333.cc:7:76: error: expected ‘}’ before ‘;’ token
7 | static yes check(U u) requires(requires{[](auto u){auto [a, b] =
u;}(u);});
| ~
^
pr94333.cc:7:76: error: expected ‘)’ before ‘;’ token
7 | static yes check(U u) requires(requires{[](auto u){auto [a, b] =
u;}(u);});
| ~
^
|
)
pr94333.cc:7:78: error: expected ‘;’ before ‘)’ token
7 | static yes check(U u) requires(requires{[](auto u){auto [a, b] =
u;}(u);});
|
^
|
;
pr94333.cc:8:12: error: ‘no’ does not name a type
8 | static no check(...);
| ^~
pr94333.cc:9:44: error: ‘T’ was not declared in this scope
9 | static constexpr bool y = sizeof(check(T())) == sizeof(yes);
| ^
pr94333.cc:9:38: error: ‘check’ was not declared in this scope
9 | static constexpr bool y = sizeof(check(T())) == sizeof(yes);
| ^~~~~
pr94333.cc:9:60: error: ‘yes’ was not declared in this scope
9 | static constexpr bool y = sizeof(check(T())) == sizeof(yes);
| ^~~
pr94333.cc:10:1: error: expected declaration before ‘}’ token
10 | };
| ^
pr94333.cc: In function ‘int main()’:
pr94333.cc:21:50: error: ‘y’ is not a member of ‘has2param<point>’
21 | constexpr bool ans = has2param<decltype(p)>::y;
| ^