54 votes

Différence entre l'instanciation et la spécialisation dans les modèles c++

Quelle est la différence entre la spécialisation et l'instanciation dans le contexte des modèles C++. D'après ce que j'ai lu jusqu'à présent, voici ce que j'ai compris de la spécialisation et de l'instanciation.

 template <typename T>
struct Struct
{

     T x;
};

template<>
struct Struct <int> //specialization
{

    //code
};

int main()
{
   Struct <int> s; //specialized version comes into play
   Struct <float> r; // Struct <float> is instantiated by the compiler as shown below

}

Instanciation de Struct <float> par le compilateur

 template <typename T=float>
struct Struct
{
    float x;
}

Ma compréhension de l'instanciation et de la spécialisation des modèles est-elle correcte ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X