E2102 Impossible d'utiliser le modèle 'modèle' sans spécifier des paramètres de spécialisation (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Erreurs et avertissements du compilateur (C++) - Index

Le format générique d'un modèle doit être référencé en utilisant des paramètres de spécialisation. Par exemple, pour une classe modèle nommée foo utilisant deux paramètres modèle, une référence correcte se présenterait ainsi :

foo<int, char>

Voici les deux seuls cas dans lesquels vous pouvez faire référence au modèle en n'utilisant que son nom (foo) :

  • Lors de la transmission du nom du modèle comme argument du modèle 'modèle'
  • Lors de la déclaration des membres de ce modèle classe, pour faire référence au type de modèle d'inclusion.

Par exemple :

template<class T>
class foo
{
public:
    foo();       // legal use of bare template name
    foo& operator=(const foo&);
};
foo<foo> x;   // error: not a template template argument
foo y;    // error: needs specialization parameters