This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of TRDec status.
Section: 3.1 [dec.tr::trdec.types.encodings] Status: TRDec Submitter: Daniel Krugler Opened: 2006-05-28 Last modified: 2016-01-31
Priority: Not Prioritized
View all issues with TRDec status.
Discussion:
Daniel writes in a private email:
- 3.1 'Decimal type encodings' says in its note:
"this implies that sizeof(std::decimal::decimal32) == 4, sizeof(std::decimal::decimal64) == 8, and sizeof(std::decimal::decimal128) == 16."This is a wrong assertion, because the definition of 'byte' in 1.7 'The C+ + memory model' of ISO 14882 (2nd edition) does not specify that a byte must be necessarily 8 bits large, which would be necessary to compare with the specified bit sizes of the types decimal32, decimal64, and decimal128.
Proposed resolution:
Change 3.1 as follows:
The three decimal encoding formats defined in IEEE-754R correspond to the three decimal floating types as follows:
- decimal32 is a decimal32 number, which is encoded in four consecutive
bytesoctets (32 bits)- decimal64 is a decimal64 number, which is encoded in eight consecutive
bytesoctets (64 bits)- decimal128 is a decimal128 number, which is encoded in 16 consecutive
bytesoctets (128 bits)
[Note: this implies thatsizeof(std::decimal::decimal32) == 4
,sizeof(std::decimal::decimal64) == 8
, andsizeof(std::decimal::decimal128) == 16
. --end note]