target-lambda-2.C 418 B

123456789101112131415161718192021222324252627282930
  1. #include <cstdlib>
  2. #define N 10
  3. int main (void)
  4. {
  5. int X, Y;
  6. #pragma omp target map(from: X, Y)
  7. {
  8. int x = 0, y = 0;
  9. for (int i = 0; i < N; i++)
  10. [&] (int v) { x += v; } (i);
  11. auto yinc = [&y] { y++; };
  12. for (int i = 0; i < N; i++)
  13. yinc ();
  14. X = x;
  15. Y = y;
  16. }
  17. int Xs = 0;
  18. for (int i = 0; i < N; i++)
  19. Xs += i;
  20. if (X != Xs)
  21. abort ();
  22. if (Y != N)
  23. abort ();
  24. }