Acabo de leer el artículo de wiki sobre CRTP, y estoy un poco confundido acerca de la creación de instancias de plantilla.instanciación de plantilla de clase
Según la wiki,
cuerpos de las funciones miembro (definiciones) no se instancian hasta mucho tiempo después de sus declaraciones.
No entiendo muy bien lo que significa.
Supongamos que tiene una plantilla de clase:
template <typename T>
class A
{
public:
void foo(T t)
{
//...
};
};
Cuando una instancia de la plantilla de clase A, lo hace una instancia de la función foo miembro()?
Por ejemplo:
//in .cpp file
int main()
{
A<int> a; //question 1
//class template is instantiated here, isn't it?
//What about foo(), is it instantiated too?
a.foo(10); //question 2
//according to the quotation, foo() will not be instantiated until it is used.
//if so, foo() is instantiated right here, not in question 1, right?
}
enchufe: Esto puede responder a sus preguntas: http: // stackoverflow.com/questions/7182359/template-instanciaiation-details-of-gcc-and-ms-compilers/7241548 # 7241548 –