Giriş
İçi şuna benzer.
Şöyle yaparız.
İçi şuna benzer.
template <class Dest, class Source>
inline Dest bit_cast(Source const &source) {
static_assert(sizeof(Dest) == sizeof(Source));
static_assert(std::is_trivially_copyable<Dest>::value);
static_assert(std::is_trivially_copyable<Source>::value);
Dest dest;
std::memcpy(&dest, &source, sizeof(dest));
return dest;
}
ÖrnekŞöyle yaparız.
float f = /* some value */;
auto bits = std::bit_cast<std::array<unsigned char, sizeof(float)>>(f);
Union Kullanımda İşe YararElimizde şöyle bir kod olsun. Union'daki bellek alanına a veya b'nin atanmış olup olmamasına bakmaksızın std::bit_cast ile erişebiliriz.
union u {
int a;
int b;
};
Hiç yorum yok:
Yorum Gönder