เพียงแค่นี้ก็ขึ้นมาในบริบทของคำถามอื่น
เห็นได้ชัดว่าฟังก์ชันสมาชิกในเทมเพลตคลาสจะถูกสร้างอินสแตนซ์เฉพาะเมื่อใช้ ODR ใครช่วยอธิบายได้ว่าหมายถึงอะไร บทความวิกิพีเดียหนึ่งนิยามกฎ (ODR)ไม่ได้พูดถึง " ODR การใช้งาน "
อย่างไรก็ตามมาตรฐานกำหนดให้เป็น
ตัวแปรที่มีชื่อปรากฏเป็นนิพจน์ที่มีการประเมินค่าจะถูกใช้แบบแปลกเว้นแต่ว่าจะเป็นอ็อบเจ็กต์ที่ตรงตามข้อกำหนดสำหรับการปรากฏในนิพจน์คงที่ (5.19) และการแปลงค่า lvalue-to-rvalue (4.1) จะถูกนำไปใช้ทันที
ใน [basic.def.odr]
แก้ไข: เห็นได้ชัดว่านี่เป็นส่วนที่ไม่ถูกต้องและทั้งย่อหน้ามีคำจำกัดความหลายคำสำหรับสิ่งต่างๆ นี่อาจเป็นสิ่งที่เกี่ยวข้องสำหรับฟังก์ชันสมาชิกเทมเพลตคลาส:
ฟังก์ชันที่ไม่โอเวอร์โหลดซึ่งมีชื่อปรากฏเป็นนิพจน์ที่มีการประเมินผลหรือเป็นสมาชิกของชุดฟังก์ชันผู้สมัครหากเลือกโดยความละเอียดเกินพิกัดเมื่ออ้างถึงจากนิพจน์ที่มีการประเมินอาจจะใช้ไม่ได้เว้นแต่จะเป็นเสมือนจริงทั้งหมด ฟังก์ชันและชื่อของฟังก์ชันไม่ตรงตามคุณสมบัติอย่างชัดเจน
อย่างไรก็ตามฉันไม่เข้าใจว่ากฎนี้ทำงานอย่างไรกับหน่วยคอมไพล์หลาย ๆ หน่วย? ฟังก์ชันของสมาชิกทั้งหมดถูกสร้างอินสแตนซ์หรือไม่หากฉันสร้างอินสแตนซ์เทมเพลตคลาสอย่างชัดเจน