https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108099
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #2) > (In reply to Jonathan Wakely from comment #1) > > __int128_t is already a typedef, so you can't add a signed or unsigned > > qualifier to it. > > i.e. the same reason this doesn't work: > > using I = int; > signed I i = 0; Hmm, actually g++ *does* allow this, unless you use -pedantic-errors: using I = int; using II = signed I; It's not valid C++ though.