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 ?