on 90% of systems `long double` is 8 bytes sadly
I wish it were that simple. On GCC for x86 it defaults to 64 bits but on x64 it defaults to 128 bits. MSVC always treat long double as 64 bits and clang generally mimics the defaults of GCC.