Ho appena letto l'articolo wiki su CRTP e sono un po 'confuso sull'istanza del modello.istanza modello di classe
Secondo il wiki,
corpi funzione membro (definizioni) non sono istanziati solo molto tempo dopo loro dichiarazioni.
Non capisco cosa significhi.
Supponiamo che ho avuto un modello di classe:
template <typename T>
class A
{
public:
void foo(T t)
{
//...
};
};
Quando un'istanza della classe template A, lo fa istanziare la funzione foo membro()?
Ad esempio:
//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?
}
spina: Questo può rispondere alle vostre domande: http: // StackOverflow.it/questions/7182359/template-instantiation-details-of-gcc-and-ms-compilers/7241548 # 7241548 –