https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84360
--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> --- As I understand it, "using" is a more modern form of typedef (e.g. with template support). So should this ideally read: return type ‘T’ {aka ‘class std::tuple<int, int, int>’} is incomplete to express both the name the code used, and the underlying type?