https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68891
Mital Ashok <mital at mitalashok dot co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |mital at mitalashok dot co.uk --- Comment #3 from Mital Ashok <mital at mitalashok dot co.uk> --- This is also erroneously named with `operator double`: assert(V{0,1,2}.operator double()[1] == 1.0); using T = double; assert(V{0,1,2}.operator T()[1] == 1.0); using U = double(&)[3]; // 'struct V' has no member named 'operator U' // V{0,1,2}.operator U(); And a similar thing happens with user defined conversions to function pointers / references