Типы данных, отличные от POD, разрешенные в первом частном разделе OpenMP? - PullRequest
0 голосов
/ 21 сентября 2011

Можем ли мы указать объект std :: vector в предложении firstprivate в прагме задачи openmp?

Возможно ли сделать векторный объект firstprivate?

Он компилируется и работает правильно... Это всегда потокобезопасно?

1 Ответ

1 голос
/ 22 сентября 2011

Да, вы можете

  1. Первая частная переменная инициализируется один раз для потока
  2. объект firstprivate создается путем вызова его конструктора копирования с копией переменной главного потока в качестве аргумента

Так в основном, пока

  • доступны конструктор копирования и оператор присваивания для класса
  • они предоставляют глубокая копия (значение) семантика

Обратите внимание , что контейнеры STL удовлетворяют этим критериям, но вы можете изменить семантику, выполнив контейнер из (не общих) элементов указателя и т. Д.

Тебе хорошо идти

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...