extern "C" void abort (); | |
template<typename T> | |
struct S | |
{ | |
T a, b, c, d; | |
T sum (void) | |
{ | |
T val = 0; | |
val += a + b + this->c + this->d; | |
return val; | |
} | |
T sum_offload (void) | |
{ | |
T val = 0; | |
#pragma omp target map(val) | |
val += a + b + this->c + this->d; | |
return val; | |
} | |
}; | |
int main (void) | |
{ | |
S<int> s = { 1, 2, 3, 4 }; | |
if (s.sum () != s.sum_offload ()) | |
abort (); | |
return 0; | |
} |