Мне интересно, можно ли исключить исключение С++ в критическом разделе OMP.
#pragma omp critical (my_critical_section)
{
...
throw my_exception("failed")
...
}
g++ не жалуется. Я озадачен, потому что он жалуется на утверждения return
внутри критического раздела. Он возвращает ошибку: invalid exit from OpenMP structured block
, когда я пишу
#pragma omp critical (my_critical_section)
{
...
return;
...
}
Итак, почему остается оставить критический раздел с исключением, но он не ОК, чтобы оставить его с помощью оператора return?