Я закодировал несколько функторов, которые инициализируют указатель члена следующим образом:
struct A
{
A() {
thust::device_vector<int> d_vect(3);
d_vect[0]=1;
d_vect[1]=2;
d_vect[2]=3;
pointer = thrust::raw_pointer_cast(d_vect.data());
}
__host__ __device__ void operator() {
//code using pointer
};
int* pointer;
};
Функтор, закодированный таким образом, работает без каких-либо явных проблем, поэтому мне интересно, что происходит с данными, хранящимися в d_vect
. Читая документацию, у меня сложилось впечатление, что эти данные должны быть уничтожены, когда d_vect
выходит за рамки, поэтому я ожидаю, что точка данных pointer
должна быть стерта, но это не так. Пожалуйста, может кто-нибудь разъяснить мне эту вещь?