在一个对象中,我有一个常量句柄数组,指向另一个特定类的某个对象。在一种方法中,我可能希望将其中一个句柄作为 -inout
参数返回。这里作为一个简化的例子:
class A {}
class B {
const(A) a[];
this() {
a = [new A(), new A(), new A()];
}
void assign_const(const(A)* value) const {
// *value = a[0]; // fails with: Error: cannot modify const expression *value
}
}
void main() {
const(A) a;
B b = new B();
b.assign_const(&a);
assert(a == b.a[0]); // fails .. obviously
}
我不想删除原始数组中的 const 。类B
意味着对集合常量项的某种视图A
。我是来自 C++ 的 D 新手。我是否搞砸了 D-way 中的 const 正确性?我已经尝试了几种方法来让它工作,但不知道如何让它正确。
如何在没有“邪恶”铸造的情况下执行此查找的正确方法?