I know that parameters can also be passed by value, when the compiler decides 
to do so. I just didn't mention it, because semantically it is the same if you 
have a copy of an object that you cant modify, or a reference to the original 
object that you can't modify either. And since it did work without problems I 
left out the detail that sometimes parameters are passed by value. I didn't 
look it up, I just assumed that all types with inheritance are always passed by 
reference, because those types are meant to be used is a polymorphic context, 
and pass by value would not allow the function to be used in a polymorphic way.

So I think technically you are right with "This is currently not specified", 
but I highly doubt that this behaviour might change in the future, because it 
just works too well. I think this pass by value and pass by reference should be 
documented more.

I don't think your example is a bug , I think it is a very well written example 
of how to not use the `bycopy` pragma, because it destroys the polymorphic 
attributes of polymorphic types.

EDIT: I just realized my message reads a bit offensive. Sorry for that, I like 
your last post, I just don't agree with your message.

Reply via email to