Я пытался использовать OMPTL в Visual Studio.Насколько я понимаю, мне нужно только установить параметр / openmp, чтобы OMPTL использовал многопоточную реализацию некоторых функций stl.
Когда я не использую / openmp, всеFine и OMPTL отображают функции на их обычные счетчики STL без многопоточности.Однако с / openmp я получаю сообщение об ошибке компилятора:
Error 1 error C2572: 'omptl::transform_accumulate' : redefinition of default parameter : parameter 6 ..\include\omptl\omptl_numeric_extentions_par.h 132
В указанной строке написано
template <class Iterator, class T, class UnaryFunction, class BinaryFunction>
T transform_accumulate(Iterator first, Iterator last, const T init,
UnaryFunction unary_op, BinaryFunction binary_op,
const unsigned P = omp_get_max_threads())
{
return ::omptl::_TransformAccumulate
<typename ::std::iterator_traits<Iterator>::iterator_category>
::transform_accumulate(first, last, init,
unary_op, binary_op, P);
}
Есть ли способ исправить это или OMPTL просто не используется с Microsoftкомпилятор?