OpenMP: шаблонное пользовательское сокращение для контейнера (собственный тип) - PullRequest
0 голосов
/ 12 апреля 2020

Я хочу определить пользовательские сокращения OpenMP для типов из библиотеки Eigen, в частности матрицы. Мне удалось определить один для определенного типа c, то есть вектора с динамическим размером long int s, но я бы предпочел определить их более широко. Можно ли определить шаблонные сокращения? Конечно, следующее не компилируется ('#pragma' is not allowed here):

template<typename Derived>
#pragma omp declare reduction(+ : Eigen::MatrixBase<Derived> : std::transform( \
        omp_out.begin(), omp_out.end(), \
        omp_in.begin(), omp_out.begin(), \
        std::plus<Index>() \
    )) \
    initializer( omp_priv = decltype(omp_orig)::Zero( \
        omp_orig.rows(), omp_orig.cols() \
    ) )

(фрагмент кода, основанный на этот ответ на мой предыдущий вопрос)

Есть ли способ определения шаблонных пользовательских сокращений или что-то, что достигает той же цели?

Я знаю этот вопрос кстати. Это не то же самое, потому что он описывает использование стандартного сокращения в шаблонной функции.

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