I had a problem with nested classes in C++ and openacc, it is the same problem as described here: https://stackoverflow.com/questions/43351111/openacc-vs-c-fatal-error-variable-is-partially-present-on-the-device
the proposed solutions work fine, however I was wondering if there is a way to solve this with deep copy, i.e. without exposing the member data of Data and without using pointers to Data?
I tried the following:
in the class Data
#pragma acc policy<dpmove> copy(arr[0:DATASIZE])
and in DataKeeper
Data a, b, c; .... #pragma acc data copy(a<dpmove>,b<dpmove>,c<dpmove>)
I get the same error as before, but I was wondering if there isn’t a way using deep copy that works for this example.