L'option -x
est disponible uniquement sur les dernières versions d'exécution d'AMD OpenCL qui prennent en charge OpenCL 1.2 et l'extension de langage statique C++. Vous ne trouverez pas un mot à ce sujet dans les documents officiels de Khronos, car il s'agit d'une initiative AMD et, en fin de compte, d'une extension de fournisseur.
Je suppose que vous avez le temps d'exécution droite, de sorte que votre noyau doit être construit avec ces options:
-x clc++
Si vous êtes en mesure de construire des noyaux avec des classes en utilisant cela, vous devriez alors être en mesure d'utiliser des modèles .
Si cela ne fonctionne pas, cela signifie que votre installation est endommagée, par ex. vous utilisez le mauvais compilateur en quelque sorte, ou cela signifie que vous n'avez pas le bon temps d'exécution. Si oui, donnez des informations sur votre plateforme.
Je me suis trompé avec l'extension C++ statique il y a un certain temps et je peux témoigner que -x clc++
fonctionne.
Aussi méfiez-vous que l'utilisation de cette extension rendra votre code non portable et verrouillé pour les appareils compatibles AMD, car il est peu probable que d'autres fournisseurs introduiront la même extension exacte eux-mêmes (si jamais).
De plus, une note sur les docs Khronos - ceux retournés par google sont typiquement les versions OpenCL 1.0 qui peuvent être irritantes. Je recommande de télécharger la norme 1.1 ou 1.2 ainsi que d'obtenir une copie locale de la documentation HTML pertinente pour un accès rapide, si vous utilisez beaucoup OpenCL. Ça aide.