https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117858
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Reduced all the way: ``` #include <optional> struct Focus { template<class T> Focus(T newValue) { } }; void g(std::optional<Focus> f) { f = f; } ``` I could use auto as the type for the Focus's ctor but I wanted it still be compilable for C++17.