std::bit_cast (3) - Linux Manuals
std::bit_cast: std::bit_cast
NAME
Synopsis
Defined in header <bit>
template< class To, class From > (since C++20)
constexpr To bit_cast(const From& from) noexcept;
Obtain a value of type To by reinterpreting the object representation of from. Every bit in the value representation of the returned To object is equal to the corresponding bit in the object representation of from. The values of padding bits in the returned To object are unspecified.
If there is no value of type To corresponding to the value representation produced, the behavior is undefined. If there are multiple such values, which value is produced is unspecified.
This overload only participates in overload resolution if sizeof(To) == sizeof(From) and both To and From are TriviallyCopyable types.
This function template is constexpr if and only if each of To, From and the types of all subobjects of To and From:
* is not a union type;
* is not a pointer type;
* is not a pointer to member type;
* is not a volatile-qualified type; and
* has no non-static data member of reference type.
Return value
An object of type To whose value representation is as described above.
Notes
reinterpret_cast (or equivalent explicit_cast) between pointer or reference types shall not be used to reinterpret object representation in most cases because of the type_aliasing_rule.
Before std::bit_cast, std::memcpy can be used when it is needed to interpret the object representation as one of another type:
Example
// Run this code
Possible output: