তার সাম্প্রতিক আলাপ ইন "আধুনিক সি প্রকার punning ++," তৈমুর Doumler বলেন যে std::bit_cast
করতে বিট একটি নিক্ষেপ ব্যবহার করা যাবে না float
একটি মধ্যে unsigned char[4]
কারণ সি-শৈলী অ্যারে একটি ফাংশন থেকে ফিরে যাবে না। আমাদের হয় std::memcpy
সি ++ 23 (বা তারপরে) অবধি ব্যবহার করা বা অপেক্ষা করা উচিত যখন এর মতো কিছু reinterpret_cast<unsigned char*>(&f)[i]
ভাল সংজ্ঞায়িত হয়ে যায়।
সি ++ 20, আমরা একটি ব্যবহার করতে পারেন std::array
সঙ্গে std::bit_cast
,
float f = /* some value */;
auto bits = std::bit_cast<std::array<unsigned char, sizeof(float)>>(f);
এর পরিবর্তে সি-স্টাইলের অ্যারের থেকে বাইট পেতে হবে float
?
struct X { unsigned char elems[5]; };
আপনি উল্লেখ করছেন সেই বিধিটিকে সন্তুষ্ট করে Note এটি অবশ্যই 4 টি পর্যন্ত উপাদান দিয়ে তালিকাভুক্ত করা যেতে পারে। এটা করতে পারেন এছাড়াও তালিকা-সক্রিয়া 5 উপাদানের সঙ্গে থাকুন। আমি মনে করি না যে কোনও মানক গ্রন্থাগার প্রয়োগকারী লোককে এটি করতে যথেষ্ট পরিমাণে ঘৃণা করে তবে আমি মনে করি এটি প্রযুক্তিগতভাবে উপযুক্ত forma