2010-07-28 3 views
0

Можно ли использовать openmp в конструкторах объектов C++?Использование Openmp в конструкторах объектов C++

Что будет, когда будет глобальный статический объект с таким конструктором?

+3

Опубликовать код, который иллюстрирует то, что вы (бессвязно) спрашиваете. – 2010-07-28 16:17:31

+0

Да, конструкторы запускают код так же, как и все остальное. – GManNickG

+1

просто для уточнения, вы имеете в виду локальный или глобальный статический? они имеют различный порядок инициализации – Anycorn

ответ

1

Да. представьте себе, что это то же самое, что вызвать функцию OpenMP от конструктора.

Второй момент, я не знаю, это может зависеть от реализации. Я совершенно уверен, что реализация pthreads должна быть приемлемой для глобальных статических объектов. http://www.terboven.com/download/poster_A0_portrait_neu_formatiert.pdf

Статическая инициализация может быть несколько сложной для правильного, http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.12. Имейте в виду, что статический объект инициализируется до основного.

+0

Когда начнутся потоки openmp? В начале (или начале)? – osgx

+1

@osgx должен быть всякий раз, когда встречается параллельная область. Точная реализация потока зависит от реализации (возможно, многоразовые/одиночные потоки) – Anycorn

+0

Проверено с помощью intel open mp - оно поддерживает такие конструкторы – osgx

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