Add support for C++17 hexadecimal floating literals
This commit is contained in:
parent
200984f051
commit
cf83adfcd1
7 changed files with 111 additions and 1 deletions
|
|
@ -163,6 +163,7 @@ CPP_TEST_CASES += \
|
|||
cpp_static \
|
||||
cpp_typedef \
|
||||
cpp14_binary_integer_literals \
|
||||
cpp17_hex_floating_literals \
|
||||
cpp17_nested_namespaces \
|
||||
cpp17_nspace_nested_namespaces \
|
||||
cpp17_u8_char_literals \
|
||||
|
|
|
|||
43
Examples/test-suite/cpp17_hex_floating_literals.i
Normal file
43
Examples/test-suite/cpp17_hex_floating_literals.i
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
%module cpp17_hex_floating_literals
|
||||
|
||||
// Tests are designed so that code compiles with C++98 compilers
|
||||
|
||||
%{
|
||||
#if __cplusplus >= 201703L
|
||||
#define CPP17 1
|
||||
#endif
|
||||
%}
|
||||
|
||||
double f1 = 0x.0p1;
|
||||
double f2 = 0x0.p1;
|
||||
double f3 = 0x0.0p-1;
|
||||
double f4 = 0xf.p-1;
|
||||
double f5 = 0xA.0p1;
|
||||
double f6 = 0x0.10P+10;
|
||||
double f7 = 0xb2F.p2;
|
||||
float f8 = 0x1234AP1F;
|
||||
float f9 = 0x45A1.D1A2p+10f;
|
||||
|
||||
%{
|
||||
#if defined(CPP17)
|
||||
double f1 = 0x.0p1;
|
||||
double f2 = 0x0.p1;
|
||||
double f3 = 0x0.0p-1;
|
||||
double f4 = 0xf.p-1;
|
||||
double f5 = 0xA.0p1;
|
||||
double f6 = 0x0.10P+10;
|
||||
double f7 = 0xb2F.p2;
|
||||
float f8 = 0x1234AP1F;
|
||||
float f9 = 0x45A1.D1A2p+10f;
|
||||
#else
|
||||
double f1 = 0.;
|
||||
double f2 = 0.;
|
||||
double f3 = 0.;
|
||||
double f4 = 7.5;
|
||||
double f5 = 20.;
|
||||
double f6 = 64.;
|
||||
double f7 = 11452.;
|
||||
float f8 = 149140.f;
|
||||
float f9 = 18253638.f;
|
||||
#endif
|
||||
%}
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
from cpp17_hex_floating_literals import *
|
||||
|
||||
if cvar.f1 != 0.:
|
||||
raise RuntimeError
|
||||
|
||||
if cvar.f2 != 0.:
|
||||
raise RuntimeError
|
||||
|
||||
if cvar.f3 != 0.:
|
||||
raise RuntimeError
|
||||
|
||||
if cvar.f4 != 7.5:
|
||||
raise RuntimeError
|
||||
|
||||
if cvar.f5 != 20.:
|
||||
raise RuntimeError
|
||||
|
||||
if cvar.f6 != 64.:
|
||||
raise RuntimeError
|
||||
|
||||
if cvar.f7 != 11452.:
|
||||
raise RuntimeError
|
||||
|
||||
if cvar.f8 != 149140.:
|
||||
raise RuntimeError
|
||||
|
||||
if cvar.f9 != 18253638.:
|
||||
raise RuntimeError
|
||||
Loading…
Add table
Add a link
Reference in a new issue