is pointer

bearophile bearophileHUGS at lycos.com
Fri Mar 19 19:11:55 PDT 2010


Moritz Warning:
>I think the problem is that is(T : T*) becomes is(int* : int**) and that's false.<

Thank you, you can be right.
So D docs are wrong, or that syntax has a semantic bug, or I have not understood the situation yet.
If someone else has ideas I'm all ears.

-------------

Ellery Newcomer:
> Curious behavior DArrays exhibit:

Thankfully this doesn't compile:

import std.stdio: writeln;
import std.c.stdlib: calloc;

struct Array {
    int* ptr;
    size_t length;
}

void main() {
    enum size_t N = 5;
    int* p = cast(int*)calloc(N, int.sizeof);
    Array a = Array(p, N);
    writeln(*a);
}

This solves the second question, I'll file it as a bug or specs bug. Thank you.

Bye,
bearophile


More information about the Digitalmars-d-learn mailing list