On Sunday, 22 August 2021 at 13:37:50 UTC, jfondren wrote:

    this(this) {
        unique = null;
    }

    ~this() {
        pureFree(unique);
    }
}

Dear jfondren,

I truly appreciate you taking the time to help me with my question!

**This bit of magic with the postblit may hold the key to my issue.**

(I have done some experiments based on your example code, am learning much,
and it looks VERY encouraging!

It is a bit scary how you guessed very closely what I am trying to
do. I have a AVX aligned pointers (obtained from fftw_malloc), that I
want to protect.

To be a bit more specific. The code that reads/writes from to/from fftw routines is all pointer based. But, to allow use of standard dlang things such as "foreach" and friends, I've been cobbling together a (naive) wrapper.

This allows me to use standard dlang syntax and operator overloads. I call my struct "fakeArray" ... since it is meant to behave either as a static array,
or a dynamic array as needed.

It **seems** to work pretty well ... but protecting the arrays from accidental
programming mistakes (such as the "auto y=x") has been eluding me.

In fact, I **can** do a legitimate data copy via "y = x", as long as
y is already instantiated as a "fakeArray".

I must steady more the example you kindly provided (learn more about the
postblit, and pureFree, the const report function,  etc...)

Best Regards,
James






Reply via email to