On 2016-02-02 19:03:04 +0000, anonymous said:

This isn't valid D code at all, which makes it unnecessarily hard to understand what you mean.

Well, it should of course be:

BaseOperator: Value {
}

A Value* is a pointer to a class reference. Unless you're doing something really funky with the pointer, casting it to a class type doesn't make sense.

Casting between class types that have an inheritance relation, like Value and BaseOperator, does make sense (upcat/downcast).

Yes, that's what I need.

If anything, you should be casting between Value* and BaseOperator* (both pointer types) if you want to do something with pointers.

I tried this, but that doesn't work either.

But you very seldom need pointers to class references. Just return Value from get, and cast to BaseOperator.

But am I not getting a copy then? I want to avoid copying objects as much as possible.

--
Robert M. Münch
http://www.saphirion.com
smarter | better | faster

Reply via email to