Раніше я зручніше використовував спілки; сьогодні я насторожився, коли прочитав цей пост і дізнався, що це код union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t g; uint8_t r; uint8_t a; } components; } pixel; pixel.colour = 0xff040201; // ARGB::colour is the active member from now on // …
Це просто для задоволення власної цікавості. Чи є реалізація цього: float InvSqrt (float x) { float xhalf = 0.5f*x; int i = *(int*)&x; i = 0x5f3759df - (i>>1); x = *(float*)&i; x = x*(1.5f - xhalf*x*x); return x; } в Іржі? Якщо він існує, опублікуйте код. Я спробував це і …
Я шукав якийсь час, але не можу знайти чіткої відповіді. Багато людей кажуть, що використання профспілок для набору каламбурів - це невизначена та погана практика. Чому це? Я не бачу жодної причини, чому він може робити щось невизначене, враховуючи те, що пам'ять, в яку ви пишете оригінальну інформацію, не буде …
У своїй нещодавній бесіді «Тип покарання в сучасному C ++» Тимур Домлер сказав, що std::bit_castйого неможливо використати для введення біт floatв «a», unsigned char[4]оскільки масиви стилю C не можуть бути повернуті з функції. Ми повинні або використовувати, std::memcpyабо чекати, поки C ++ 23 (або пізніше), коли щось подібне reinterpret_cast<unsigned char*>(&f)[i]стане …