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

--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Fedor Chelnokov from comment #4)
> Actually you changed the example, and if T is void, then T{} is ill-formed.
> But I do not see how it relates to the original program.

I know I changed the example to show that clang is considering all templated
operator auto rather than not considering any of them.  This is why I am saying
clang is just plain out wrong of the way it handles templated operator auto.


class.conv.fct/6 is very explicit about this too:
A conversion function template shall not have a deduced return type (10.1.7.4).
[ Example:
struct S {
operator auto() const { return 10; } // OK
template<class T>
operator auto() const { return 1.2; } // error: conversion function template
};

----- CUT ----
So again clang is wrong.

Reply via email to