Section: 18.104.22.168 [meta.trans.other] Status: Tentatively Ready Submitter: Casey Carter Opened: 2017-11-12 Last modified: 2017-11-17
View all other issues in [meta.trans.other].
View all issues with Tentatively Ready status.
P0767R1 "Expunge POD" changed the requirement for several library types from "POD" to "trivial." Since these types no longer provide/require the standard-layout portion of "POD," the change breaks:
The fix is straight-forward: apply an additional standard-layout requirement to the affected types:
[ 2017-11-14 Moved to Tentatively Ready after 8 positive votes for P0 on c++std-lib. ]
This wording is relative to N4700 + P0767R1.
Change in 21.2.4 [support.types.layout] paragraph 5:
The type max_align_t is a trivial type whose alignment requirement is at least as great as that of every scalar type, and whose alignment requirement is supported in every context (6.6.5 [basic.align]).
Change the table in 22.214.171.124 [meta.trans.other] as indicated:
The member typedef type shall be a trivial type suitable for use as uninitialized storage for any object whose size is at most Len and whose alignment is a divisor of Align.
The member typedef type shall be a trivial type suitable for use as uninitialized storage for any object whose type is listed in Types; its size shall be at least Len.
Change 24.1 [strings.general] paragraph 1 as indicated:
This Clause describes components for manipulating sequences of any non-array trivial (6.7 [basic.types]) type. Such types are called char-like types, and objects of char-like types are called char-like objects or simply characters.