https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70529

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
So what do you suggest?
The thing is,
0x123p2
in C++11/C++14 is a single preprocessing token, but
0x123p-2
or
0x123p+2
are 3 preprocessing tokens:
pp-number:
  digit
  . digit
  pp-number digit
  pp-number identifier-nondigit
  pp-number e sign
  pp-number E sign
  .
and identifier-nondigit is also a..z A..Z _ among others.
Only in C++17 0x123p-2 is a single preprocessing token, as
  pp-number p sign
  pp-number P sign
is added.
If you use -pedantic, then you'll get a warning (or with -pedantic-errors
error)
for all uses of hexadecimal floats.
So, either use the GNU extension modes (-std=gnu++11, -std=gnu++14), or wait
for -std=c++17.

Reply via email to