class instanciação de modelo
Acabei de ler o artigo da wiki sobre CRTP, e estou um pouco confuso sobre a instanciação do model
De acordo com o wiki,
s corpos das funções de membro (definições) não são instanciados até muito tempo depois de suas declaraçõe
Não entendo bem o que isso signific
Suponha que recebi um modelo de classe:
template <typename T>
class A
{
public:
void foo(T t)
{
//...
};
};
uando instancia o modelo de classe A, ele instancia a função de membro foo (
Por exemplo
//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?
}