2
การหักอาร์กิวเมนต์เทมเพลตสำหรับอาร์กิวเมนต์ของประเภทฟังก์ชั่น
พิจารณาโปรแกรมต่อไปนี้ #include <iostream> template <typename T> void f( void ( *fn )( T ) ) { fn( 42 ); } void g( int x ) { std::cout << "g( " << x << " );\n"; } int main() { f( g ); } โปรแกรมคอมไพล์ได้สำเร็จและผลลัพธ์คือ g( 42 ); ตอนนี้ขอเปลี่ยนชื่อฟังก์ชั่นที่ไม่ใช่แม่แบบเพื่อgf #include <iostream> …