คำถามติดแท็ก inference

3
Hindley-Milner คืออะไร?
ฉันเจอคำนี้ฮินด์ลีย์ - มิลเนอร์และฉันไม่แน่ใจว่าเข้าใจความหมายหรือไม่ ฉันได้อ่านโพสต์ต่อไปนี้: Steve Yegge - Dynamic Languages ​​Strike Back Steve Yegge - ปัญหา Pinocchio Daniel Spiewak - Hindley-Milner คืออะไร? (แล้วทำไมถึงเท่ล่ะ?) แต่ไม่มีรายการเดียวสำหรับคำนี้ในวิกิพีเดียซึ่งมักจะให้คำอธิบายสั้น ๆ แก่ฉัน หมายเหตุ - ตอนนี้มีการเพิ่มหนึ่งรายการ มันคืออะไร? ภาษาและเครื่องมือใดบ้างที่ใช้หรือใช้ คุณช่วยเสนอคำตอบที่กระชับได้ไหม

12
ทำไมไม่อนุมานพารามิเตอร์เทมเพลตจากตัวสร้าง
คำถามของฉันวันนี้ค่อนข้างง่าย: ทำไมคอมไพเลอร์ไม่สามารถสรุปพารามิเตอร์เทมเพลตจากตัวสร้างคลาสได้มากเท่าที่จะทำได้จากพารามิเตอร์ฟังก์ชัน ตัวอย่างเช่นเหตุใดรหัสต่อไปนี้จึงไม่ถูกต้อง: template<typename obj> class Variable { obj data; public: Variable(obj d) { data = d; } }; int main() { int num = 2; Variable var(num); //would be equivalent to Variable<int> var(num), return 0; //but actually a compile error } อย่างที่ฉันพูดฉันเข้าใจว่ามันไม่ถูกต้องดังนั้นคำถามของฉันคือทำไมไม่เป็นเช่นนั้น? จะช่วยให้สิ่งนี้สร้างช่องทางไวยากรณ์ที่สำคัญหรือไม่? มีอินสแตนซ์ที่ใครไม่ต้องการฟังก์ชันนี้ (โดยที่การอนุมานประเภทจะทำให้เกิดปัญหา)? ฉันแค่พยายามเข้าใจตรรกะเบื้องหลังการอนุญาตให้มีการอนุมานเทมเพลตสำหรับฟังก์ชัน แต่ไม่ใช่สำหรับคลาสที่สร้างขึ้นอย่างเหมาะสม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.