เหตุใดจึงไม่จำเป็นต้องใช้ชื่อพิมพ์สำหรับประเภทที่อ้างอิงในกรณีต่อไปนี้
ผมได้อ่านเกี่ยวกับการลบการอ้างอิงจากประเภทที่นี่ มันให้ตัวอย่างต่อไปนี้: #include <iostream> // std::cout #include <type_traits> // std::is_same template<class T1, class T2> void print_is_same() { std::cout << std::is_same<T1, T2>() << '\n'; } int main() { std::cout << std::boolalpha; print_is_same<int, int>(); print_is_same<int, int &>(); print_is_same<int, int &&>(); print_is_same<int, std::remove_reference<int>::type>(); // Why not typename std::remove_reference<int>::type ? print_is_same<int, std::remove_reference<int &>::type>();// Why …