https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80144

Eric Gallager <egallager at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-08-21
                 CC|                            |egallager at gcc dot gnu.org
     Ever confirmed|0                           |1

--- Comment #1 from Eric Gallager <egallager at gcc dot gnu.org> ---
(In reply to Arthur O'Dwyer from comment #0)
> Compile this code with GCC trunk and -fconcepts:
> 
> template<typename T>
> concept bool Never = requires(T t) {
>     { t != 42 };
> };
> 
> template<typename T> concept bool First = Never<T>;
> template<Never T> concept bool Second = true;
> 
> int main()
> {
>     static_assert(!Never<void*>);
>     static_assert(!First<void*>);
>     static_assert(!Second<void*>);  // static assertion failed
> }
> 
> I claim that the final static_assert should not fail, or else GCC should
> diagnose some kind of syntax error in my concept definitions (perhaps the
> syntax "Never T" is not intended to be supported).

Confirmed, although I'm not sure which of those 2 options is correct...

Reply via email to