создание экземпляра шаблона класса

Я только что прочитал вики-статью о CRTP , и меня немного смущает создание экземпляров шаблонов.

Согласно вики,

тела (определения) функций-членов не создаются до тех пор, пока не пройдет после их объявления.

Я не совсем понимаю, что это значит.

Предположим, у меня есть шаблон класса:

template 
class A
{
    public:
        void foo(T t)
        {
            //...
        };
};

Когда я создаю экземпляр шаблона класса A, создает ли он экземпляр функции-члена foo ()?

Например:

//in .cpp file
int main()
{
    A 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?
}

14
задан Alcott 21 November 2011 в 11:18
поделиться