P0258R2
2016-06-24
Michael Spencer <bigcheesegs@gmail.com>
Audience: LWG
<type_traits>
synopsis [meta.type.synop]Add to synopsis.
template <class T> struct has_unique_object_representations;
Add to table 52 - Type property predicates.
Template Condition Preconditions template <class T> struct has_unique_object_representations;
For an array type T
, the same result ashas_unique_object_representations<remove_all_extents_t<T>>::value
, otherwise see belowT
shall be a complete type, (possibly cv-qualified)void
, or an array of unknown bound.
Add a paragraph
The predicate condition for a template specialization
has_unique_object_representations<T>::value
shall be satisfied if and only if:
T
is trivially copyable, and- any two objects of type
T
with the same value have the same object representation, where two objects of array or non-union class type are considered to have the same value if their respective sequences of direct subobjects have the same values, and two objects of union type are considered to have the same value if they have the same active member and the corresponding members have the same value.The set of scalar types for which this condition holds is implementation defined. [ Note: If a type has padding bits, the condition does not hold; otherwise, the condition holds true for unsigned integral types. —end note ]