7
ฉันควรใช้การลดชนิดการส่งคืนอัตโนมัติ C ++ 14 เมื่อใด
ด้วยการเปิดตัว GCC 4.8.0 เรามีคอมไพเลอร์ที่รองรับการหักค่าส่งคืนชนิดอัตโนมัติซึ่งเป็นส่วนหนึ่งของ C ++ 14 ด้วย-std=c++1yฉันสามารถทำสิ่งนี้: auto foo() { //deduced to be int return 5; } คำถามของฉันคือ: ฉันควรใช้คุณสมบัตินี้เมื่อใด เมื่อใดที่จำเป็นและเมื่อใดที่ต้องทำให้รหัสสะอาดขึ้น สถานการณ์ 1 สถานการณ์แรกที่ฉันนึกได้คือเมื่อเป็นไปได้ ทุกฟังก์ชั่นที่สามารถเขียนด้วยวิธีนี้ควรจะเป็น ปัญหาเกี่ยวกับสิ่งนี้คือมันอาจไม่ทำให้โค้ดอ่านง่ายขึ้นเสมอไป สถานการณ์ที่ 2 สถานการณ์ต่อไปคือการหลีกเลี่ยงประเภทการคืนที่ซับซ้อนมากขึ้น เป็นตัวอย่างที่เบามาก: template<typename T, typename U> auto add(T t, U u) { //almost deduced as decltype(t + u): decltype(auto) would return t …