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

--- Comment #6 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Jonathan Wakely from comment #5)
> Reduced thanks to K-ballo:

Hmm, clang compiles and gives:
member

While both GCC and ICC compiles and gives:
non-member


And MSVC rejects it with:

<source>(15): error C2593: 'operator <<' is ambiguous
<source>(10): note: could be 'void my_stream::operator <<<const
char(&)[12]>(T)'
        with
        [
            T=const char (&)[12]
        ]
<source>(6): note: or       'void operator <<<my_stream,char[12]>(C &&,const T
(&))'
        with
        [
            C=my_stream,
            T=char [12]
        ]
<source>(15): note: while trying to match the argument list '(my_stream, const
char [12])'

This might be the first time I have seen all four compiler full on disagree for
a testcase like this (with GCC and ICC agreeing).

Reply via email to