https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63198
--- Comment #4 from Thomas Bernard <thomas at famillebernardgouriou dot fr> --- I investigated a bit further and I come up to the same conclusion as Bob Abeles. Having an assignment operator inside the decltype makes gcc believe the type is dependent. There are a couple of spots where the assignment operator is handled specifically, most probably it isn't handled correctly inside the decltype.