We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
These two examples are very similar, but the second one is ill-formed per the wording despite implementations accepting it due to user demand:
template <typename T> concept C = requires (typename T::type x) { x + 1; }; static_assert(!C<int>);
vs.
template <typename T> constexpr bool b = requires (T::type x) { x + 1; }; static_assert(!b<int>); // de-jure ill-formed, but widely accepted by implementations
In order to make the second case well-formed, the user needs to write a nested requires that checks for the presence of T::type first.
T::type
See CWG2565 for details.
The text was updated successfully, but these errors were encountered:
This was discussed during the Morning AM session in Tokyo, the following poll was taken:
CWG2565 EWG agrees that this is an issue worth considering, but would like to see a paper to propose a change.
Result: Consensus
Paper author not identified.
Sorry, something went wrong.
No branches or pull requests
These two examples are very similar, but the second one is ill-formed per the wording despite implementations accepting it due to user demand:
vs.
In order to make the second case well-formed, the user needs to write a nested requires that checks for the presence of
T::type
first.See CWG2565 for details.
The text was updated successfully, but these errors were encountered: