27
Templated ตรวจสอบการมีอยู่ของฟังก์ชันสมาชิกคลาสหรือไม่
เป็นไปได้ไหมที่จะเขียนเทมเพลตที่เปลี่ยนลักษณะการทำงานขึ้นอยู่กับว่าฟังก์ชั่นสมาชิกบางตัวมีการกำหนดไว้ในคลาสหรือไม่? นี่คือตัวอย่างง่ายๆของสิ่งที่ฉันต้องการเขียน: template<class T> std::string optionalToString(T* obj) { if (FUNCTION_EXISTS(T->toString)) return obj->toString(); else return "toString not defined"; } ดังนั้นหากclass TมีการtoString()กำหนดไว้แล้วมันจะใช้มัน มิฉะนั้นจะไม่ ส่วนมหัศจรรย์ที่ฉันไม่รู้ว่าต้องทำอย่างไรคือส่วน "FUNCTION_EXISTS"