ฉันมีนามแฝงสำหรับเรเดียนและหน่วยเป็นองศาซึ่งนั่นใช้โฟลที่จัดเก็บข้อมูลประเภทนี้ได้นะ
ตอนที่ฉันแปลงระหว่างสองคนนี้หน่วยผมเห็นชุมนุช่วยส่งเสริมค่าที่จะสองเท่าและจากนั้นกลับไปที่โบยบิตอนที่ทำ conversions.
Q: ผมต้องทำยังไงให้แน่ใจว่าทุกปฏิบัติการและ conversions อยู่ในโบยบิ?
ขอรหัส:
using radians_f = boost::units::quantity<boost::units::si::plane_angle, float>;
using degrees_f = boost::units::quantity<boost::units::degree::plane_angle, float>;
degrees_f to_degrees(const radians_f& angle) { return static_cast<degrees_f>(angle); }
radians_f to_radians(const degrees_f& angle) { return static_cast<radians_f>(angle); }
จากคอมไพเลอร์เอ็กซ์พลอเรอร์ฉันเห็นตามโรงเรีคำแนะนำ: https://godbolt.org/z/Gnjr54dn6
cvtss2sd -Converts นนัดเดียว-จำนวนทศนิยมตัวลอยบินบนฟ้า-ค่าจุดในกอง"แปลง-จาก"แหล่งข่าว operand ต้องเป็นสองจำนวนทศนิยมตัวลอยบินบนฟ้า-ค่าจุดในปลายทาง operand.
mulsd -Multiplies ที่ต่ำสองจำนวนทศนิยมตัวลอยบินบนฟ้า-ค่าจุดในครั้งที่สองแหล่ง operand ที่ต่ำสองจำนวนทศนิยมตัวลอยบินบนฟ้า-ค่าจุดในตอนแรกแหล่งข่าว operand.
cvtsd2ss -Converts เป็นสองจำนวนทศนิยมตัวลอยบินบนฟ้า-ค่าจุดในกอง"แปลง-จาก"แหล่งข่าว operand เพื่อนนัดเดียว-จำนวนทศนิยมตัวลอยบินบนฟ้า-ค่าจุด
À¡à§à¥:ฉันจะไม่แปลกใจเลยถ้าฉันมีกำหนดไว้ของฉันชื่อหรือ/ของฉันและการแปลงฟังก์ชันที่เกิดจาก.