https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120682
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> --- If you are asking for a new OpenMP feature, this is not the right forum, GCC bugzilla is for reporting bugs. C++ standard doesn't have pragma templates nor attribute templates, so you'd be asking for some OpenMP new feature that would allow to define declare reduction/mapper not for just one type, but for arbitrary or perhaps concept restricted set of template parameters and corresponding type using those template parameters. There is no syntax for that currently, and it isn't going to happen in OpenMP 6.0 either. As I wrote, if you have a function template instantiated for double, float etc, you could use #pragma omp declare mapper (myvec<T> v) map(...) in there, otherwise you need to repeat it.