Object Pointer
Jonathan M Davis
jmdavisProg at gmx.com
Sun Jul 15 16:14:21 PDT 2012
On Monday, July 16, 2012 00:47:27 Namespace wrote:
> Is something like this possible?
>
> Foo* create_ptr(Foo f) {
> assert(f !is null);
> // ...
> }
>
> Foo* fp = create_ptr(new Foo());
>
> with "ref Foo f" of course, there is no limitation.
You cannot have pointers to classes. The language does not support it. You can
have pointers to class references, and you can have pointers to structs or the
built-in types, but if Foo is a class, then what you can't have a pointer to
it. The closest that you can get is that I believe that you can cast class
references to and from void*, and that will work, but Foo* is a pointer to a
reference to Foo, not a pointer to Foo, and there's no way in the type system
to represent a pointer to Foo.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list