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

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Reduced thanks to K-ballo:

extern "C" int puts(const char*);

template<typename C, typename T>
void operator<<(C&&, T const&) { puts("non-member"); }

struct my_stream {
    template <typename T>
    void operator<<(T&&) { puts("member"); }
};

int main()
{
    my_stream{} << "hello world";
}

Reply via email to