Re: компиляция шаблонов в c++
От: _nn_  
Дата: 12.02.05 13:06
Оценка: 2 (1)
Здравствуйте, ABK, Вы писали:

ABK>Добрый день!


ABK>Подскажите, пожалуйста, как компилятор VS 6.0 поведёт себя со следующим шаблоном:


ABK>
ABK>template <class T> CList
ABK>{
ABK>public:
ABK>  // ...
ABK>private:
ABK>  T* pT;
ABK>};
ABK>

ABK> Внутри шаблона будет присутствовать только указатель на T. В коде программы будут использоваться, скажем, CList<CString> и CList<CNumeric>. Интересует, будет ли компилятор создавать 2 разных класса CList<CString> и CList<CNumeric>, или же код останется один, но просто будут правильно приводиться типы?

Для каждого типа создается свой тип и свой набор функций.
Приведение типа здесь не применяется.

С этим обстоятельством есть проблема, скажем для CList<int> и CList<long> даже когда sizeof(int)==sizeof(long) будут созданны 2 разных класса.
К счастью компиляторы умеют оптимизировать подобные конструкции.
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.