Переменные-члены класса и OpenMP - PullRequest
1 голос
/ 23 июня 2010

У меня есть сценарий, подобный следующему:

//class somemethod contains the member variables(declaration) val1 and val2, 
//and is defined in somemethod.h.

#include <somemethod.h>

void abovefunction(x)
{
//code that could be made parallel if val1 and val2 is declared private()
}
//abovefunction() is in somemethod.cpp, where the methods of class somemethod
//are described

Функция позже вызывается некоторым объектом, например obj.abovefunction (x). Поскольку val1 и val2 объявлены / инициализированы в somemethod.h, поэтому я не могу использовать их как частные (val1, val2), и что-то вроде private (this-> val1, this-> val2) также невозможно. Может кто-нибудь, пожалуйста, дайте мне знать лучший способ распараллеливания с использованием OpenMP в таких случаях, когда эта переменная является частью класса и объявлена ​​не в непосредственной области блока кода, где применяются прагмы OpenMP?

Я задал тот же вопрос на форуме OpenMP - http://openmp.org/forum/viewtopic.php?f=3&t=886#p3516

Спасибо
Саян

1 Ответ

0 голосов
/ 23 июня 2010

Если я не ошибаюсь, когда вы объявляете переменную private (var), все, что она делает, это создает новое пространство для этой переменной, и она фактически не копирует значение, которое она ввела в выражение private (var).

При этом, если бы вы могли использовать оператор private (var), не могли бы вы локально инициализировать переменную в вызове somemethod :: abovefunction (x)?

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