This code works fine (D 2.x only):
class Test
{
private int[int] _testMap;
public ref int[int] testMap() {return _testMap;}
}
void main()
{
Test test = new Test();
test.testMap[0] = 1;
}
Note the "ref". Otherwise, a value is returned which is not modifiable.
This will also fix test.array.length. Nothing wrong here, no creepy
bad temporary property problems.
I suppose you could also try returning a pointer to an associative array
(e.g. with &) in D 1.x.
-[Unknown]
flourish wrote:
Hi,
why does the following code not compile -- or how to declare a (usable)
property of an associative array field?
//////////////////////
class Test
{
private int[int] _testMap;
public int[int] testMap() {return _testMap;}
}
void main()
{
Test test = new Test();
test.testMap[0] = 1;
}
/////////////////
*** Error: test.testMap() is not an lvalue
Regards,
flourish