ฉันเพิ่งต้องการใช้ std.container.Array และดำเนินการสร้างคลาสที่มีฟังก์ชันสมาชิก getter ซึ่งส่งคืนค่าจากคลาส Array ฉันรู้ได้อย่างรวดเร็วว่าฉันไม่สามารถกำหนดคุณสมบัติ getter ของฉันได้ เนื่องจาก opIndex เป็นฟังก์ชันที่ไม่แน่นอน
ฉันพยายามเปลี่ยนซอร์สโค้ดเพื่อให้มีคุณสมบัติ Array.opIndex และมันก็ใช้งานได้ดี อย่างไรก็ตาม การทดสอบหน่วยบางอย่างใน std.algorithm ไม่ผ่าน โดยบ่นว่าค่าที่ส่งคืนของ Array.opIndex ไม่ใช่ค่า lvalue
นี่คือโค้ดสำหรับ Array.opIndex:
ref T opIndex(size_t i)
{
version (assert) if (!_data.refCountedStore.isInitialized) throw new RangeError();
return _data._payload[i];
}
มีบางอย่างที่ฉันขาดหายไปที่นี่หรือไม่? เหตุใดจึงไม่ผ่านการรับรอง?