Am 29.12.2013 17:22, schrieb Ritu:

No. In D, struct are freely copied or moved depending on whether the
source is an lvalue or an rvalue. What is possible is to define the
post-blit function to work on the already-blitted destination object.

For example, if you don't want the source and the destination share a
member slice, the destination object's post-blit can make a copy.

Ok, I will give you some background of what I am trying to do.

I have a struct that wraps a class object and lazily initializes it. Now
in case the struct instance is passed as an argument to a function and
it has not been initialized yet, the default copy constructor and the
postblit do not offer a possibility to initialize the class object
before copying.

Any possibility of *preblit* kind functionality?

Regards
- Ritu

No unfortunately not. You could solve the issue by adding another level of indirection. So always allocate the additional indirection, then its save to copy it, and then you can lazy instaniate the actual instance when needed and all copies of your wrapper will see the instance.

Kind Regards
Benjamin Thaut

Reply via email to