2016-06-11 3 views
3

Я хочу использовать C++ и vectors. У меня был C код с C массивов, созданных, как это:Как написать «целевую карту данных» для std :: vector в OpenMP 4?

double* data = (double*)malloc(sizeof(double) * n); 
double* result = (double*)malloc(sizeof(double) * n); 

#pragma omp target data map(tofrom: data[0:n],result[0:n]) 
//loop 

Теперь я использую вектор C++ и я получаю:

example.cpp:31:41: error: expected variable name or an array item 
    #pragma omp target data map(tofrom: data[0:n],result[0:n]) 

Вот они говорят OpenMP4 введены определенные пользователем сокращения. Но есть ли у него какие-либо аналоги для карт данных?

ответ

3

Вы всегда можете получить указатели базового хранилища std::vector, а затем использовать их так же, как в своем коде на C.

double* data = vec_data.data(); 
double* result = vec_res.data(); 
int n = vec_data.size(); 

#pragma omp target data map(tofrom:data[0:n],result[0:n]) 
//loop 

 Смежные вопросы

  • Нет связанных вопросов^_^