C++17 十六进制浮点文字单精度后缀冲突?

C++17 Hexidecimal floating point literal single precision suffix conflict?

我在查看浮点文字的 C++17 规范时发现了一个问题。如何区分单精度数字F和后缀F

例如,文字 0x1p0F 是转换为双精度 32768.0L 还是单精度 1.0F

规范说后缀是可选的,没有后缀表示双精度,所以,如所写,存在明确的歧义。

十六进制浮点数必须使用 p 指数。指数是使用非十六进制数字(表示要应用于 2 的指数的十进制整数)定义的。因此,它不能包含 "A-F" 个字符。所以没有歧义。 0x1p0F 的指数为“0”,类型为 float.