Questions tagged «reinterpret-cast»


11
为什么此reinterpret_cast无法编译?
我知道这样做reinterpret_cast很危险,我只是在做测试。我有以下代码: int x = 0; double y = reinterpret_cast<double>(x); 当我尝试编译程序时,它给我一个错误提示 从“ float”类型到“ double”类型的无效转换 这是怎么回事?我以为reinterpret_cast是可以用来将苹果转换为潜艇的流氓演员,为什么这个简单的演员不能编译?

2
类型双关主题的变化:就地琐碎构造
我知道这是一个很普通的主题,但是尽管很容易找到典型的UB,但到目前为止我还没有找到这个变体。 因此,我尝试正式引入Pixel对象,同时避免实际复制数据。 这有效吗? struct Pixel { uint8_t red; uint8_t green; uint8_t blue; uint8_t alpha; }; static_assert(std::is_trivial_v<Pixel>); Pixel* promote(std::byte* data, std::size_t count) { Pixel * const result = reinterpret_cast<Pixel*>(data); while (count-- > 0) { new (data) Pixel{ std::to_integer<uint8_t>(data[0]), std::to_integer<uint8_t>(data[1]), std::to_integer<uint8_t>(data[2]), std::to_integer<uint8_t>(data[3]) }; data += sizeof(Pixel); } return result; // throw in …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.