Sadece CRTP ile ilgili wiki makalesini okudum ve şablon örneği hakkında biraz kafam karıştı. wiki göre sınıf örneği örneği
,üye işlev organları (tanımları) kendi beyanlarına sonra uzun kadar örneği değil.
Bunun ne anlama geldiğini anlamıyorum.
varsayalım bir sınıf şablonu var: Sınıf şablonu A örneğini zaman
template <typename T>
class A
{
public:
void foo(T t)
{
//...
};
};
, bu üye işlev foo örneğini mu()? Örneğin
: değil çalışma zamanı sırasında, derleme sırasında
Destekleme olur:
//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?
}
Fiş: Bu sorulara cevap verebilir: http: // stackoverflow.com/questions/7182359/template-instantiation-details-of-gcc-ve-ms-derleyiciler/7241548 # 7241548 –