I am wondering why compiler doesn't tolerate initializing a float a const long double but allows initialization with a long double literal? Aren't we losing precision in the former?
float f {3.14L}; //compiles
const long double myConst {3.14};
float f{myConst}; // error: non-constant-expression cannot be narrowed from type 'long double' to 'float' in initializer list