К сожалению, это официально не поддерживается . Это может или не может работать, в зависимости от реализации, но это не переносимо.
Только самая последняя версия, OpenMP 5.0, даже определяет взаимодействие с C ++ 11. В общем, использование чего-либо из C ++ 11 и вперед "может привести к неопределенному поведению" . Хотя в будущих версиях спецификации OpenMP предполагается использовать следующие функции, в настоящее время их использование может привести к неопределенному поведению.
- Поддержка выравнивания
- Стандартные типы макетов
- Разрешающие конструкции перемещения генерировать
- Определение специальных функций-членов перемещения
- Параллелизм
- Порядок зависимости от данных: атомика и модель памяти
- Дополнения к стандартной библиотеке
- Локальное хранилище потоков
- Динамическая инициализация и уничтожение с параллелизмом
- C ++11 библиотека
Хотя C ++ 17 и его специфическая поддержка параллелизма высокого уровня не упоминаются, из этого списка ясно, что он не поддерживается.