11
สวย - พิมพ์ std :: tuple
นี่เป็นคำถามที่ตามมาจากคำถามก่อนหน้าของฉันเกี่ยวกับคอนเทนเนอร์ STL ที่มีการพิมพ์สวยซึ่งเราได้จัดการเพื่อพัฒนาโซลูชันที่หรูหราและใช้งานทั่วไป ในขั้นตอนต่อไปนี้ฉันต้องการรวมการพิมพ์ที่สวยงามสำหรับการstd::tuple<Args...>ใช้เทมเพลตตัวแปร (ดังนั้นนี่คือ C ++ 11 อย่างเคร่งครัด) สำหรับstd::pair<S,T>ฉันพูดง่ายๆ std::ostream & operator<<(std::ostream & o, const std::pair<S,T> & p) { return o << "(" << p.first << ", " << p.second << ")"; } โครงสร้างที่คล้ายคลึงกันสำหรับการพิมพ์ทูเพิลคืออะไร? ฉันได้ลองใช้การแยกสแต็กอาร์กิวเมนต์เทมเพลตหลายบิตส่งดัชนีไปรอบ ๆ และใช้ SFINAE เพื่อค้นหาว่าฉันอยู่ที่องค์ประกอบสุดท้าย แต่ไม่ประสบความสำเร็จ ฉันไม่เป็นภาระให้คุณด้วยรหัสที่เสียของฉัน หวังว่าคำอธิบายปัญหาจะตรงไปตรงมาเพียงพอ โดยพื้นฐานแล้วฉันต้องการพฤติกรรมต่อไปนี้: auto a = std::make_tuple(5, "Hello", -0.1); …