immutable array in constructor
Anonymouse via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Mar 17 03:04:53 PDT 2016
On Thursday, 17 March 2016 at 09:57:37 UTC, Jeff Thompson wrote:
> In the following code, I explicitly declare array as immutable.
> But it compiles with the error shown below in the comment. The
> array object is declared immutable, so how can the compiler say
> it is a mutable object? In summary, how to pass an immutable
> array to an immutable constructor?
>
> class C {
> int i;
> this(immutable int[] array) immutable {
> i = array[0];
> }
> }
>
> void func() {
> immutable int[] array = [1];
> auto c = new C(array); // Error: immutable method C.this is
> not callable using a mutable object
> }
The error message isn't very good, but remove immutable from the
constructor and it works.
> this(immutable int[] array) {
More information about the Digitalmars-d-learn
mailing list