I had a problem with nested classes in C++ and openacc, it is the same problem as described here: OpenACC vs C++: FATAL ERROR: variable is partially present on the device - Stack Overflow
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.