https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100205
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- Reduced: struct coordinate_matrix { using index_t = unsigned; struct convert_to_matrix_coordinate { index_t column_id; }; index_t column_id; // does not work using value_type2 = decltype(convert_to_matrix_coordinate{column_id}); // does work using value_type5 = decltype(column_id); };