The C++14 draft standard seems rather quiet about the specific requirements for float, double and long double, although these sizes seem to be common:
"float" and "double" are de-facto standardised on the IEEE single and double precision representations. I would put assuming these sizes in the same category as assuming CHAR_BIT==8. Some older arm systems did have wierd "mixed-endian" doubles, but unless you are working with retro stuff you are unlikely to encounter that nowadays.
long double on the other hand is far more variable. Sometimes it's IEEE double precision, sometimes it's 80 bit x87 extended, sometimes it's IEEE quad precision , sometimes it's a "double double" format made up from two IEEE double precision numbers added together.
So in portable code you can't rely on "long double" being any better than "double".