export template
От: piAnd Россия  
Дата: 04.05.06 09:07
Оценка:
Где в стандарте или Вы объясните, что конкретно дает использование
//FILE.h
export template<class T>
class XXX;

//FILE.cpp
template<class T>
class XXX
{ /*пишем код*/ };

Будет ли время компиляции уменьшаться в проекте, где много шаблонов?
Re: export template
От: piAnd Россия  
Дата: 04.05.06 09:10
Оценка:
Где в стандарте или Вы объясните, что конкретно дает использование
//FILE.h
extern template<class T>
class XXX;

//FILE.cpp
template<class T>
class XXX
{ /*пишем код*/ };

Будет ли время компиляции уменьшаться в проекте, где много шаблонов?
Re: export template
От: Bell Россия  
Дата: 04.05.06 09:15
Оценка:
Здравствуйте, piAnd, Вы писали:

A>Где в стандарте или Вы объясните, что конкретно дает использование

A>
A>//FILE.h
A>export template<class T>
A>class XXX;
A>

A>
A>//FILE.cpp
A>template<class T>
A>class XXX
A>{ /*пишем код*/ };
A>

A>Будет ли время компиляции уменьшаться в проекте, где много шаблонов?

Короткий ответ: врядли.
Подробнее, например, у Саттера в "Новых сложных задачах".

ЗЫ
Компилятор Comeau?
Любите книгу — источник знаний (с) М.Горький
Re: export template
От: alexeiz  
Дата: 04.05.06 09:37
Оценка:
Здравствуйте, piAnd, Вы писали:

A>Где в стандарте или Вы объясните, что конкретно дает использование

A>
A>//FILE.h
A>export template<class T>
A>class XXX;
A>

A>
A>//FILE.cpp
A>template<class T>
A>class XXX
A>{ /*пишем код*/ };
A>

Ты неправильно понял. Export работает так:
// file.h
export template <class T>
class XXX
{
   // define interface
   T foo();
};

// file.cpp
// implementation
template <typename T>
T XXX<T>::foo()
{
    //...
}

Это даёт "визуальное" разделение интерфейса и реализации.

A>Будет ли время компиляции уменьшаться в проекте, где много шаблонов?

Это вопрос за семью печатями. Никто не знает, потому что никто ещё не пробовал.
Re: export template
От: Шахтер Интернет  
Дата: 04.05.06 10:22
Оценка:
Здравствуйте, piAnd, Вы писали:

A>Где в стандарте или Вы объясните, что конкретно дает использование

A>
A>//FILE.h
A>export template<class T>
A>class XXX;
A>

A>
A>//FILE.cpp
A>template<class T>
A>class XXX
A>{ /*пишем код*/ };
A>

A>Будет ли время компиляции уменьшаться в проекте, где много шаблонов?

Может быть. За счет уменьшения размеров заголовков сократится время парсинга (и считывания файлов с диска).
Другой вопрос -- насколько. Вполне может быть, что выигрыш окажется неощутимым.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[2]: export template
От: piAnd Россия  
Дата: 04.05.06 12:41
Оценка:
Здравствуйте, Шахтер, Вы писали:
A>>Будет ли время компиляции уменьшаться в проекте, где много шаблонов?

Ш>Может быть. За счет уменьшения размеров заголовков сократится время парсинга (и считывания файлов с диска).

Ш>Другой вопрос -- насколько. Вполне может быть, что выигрыш окажется неощутимым.
А в чем тогда плюс этой конструкции?
Re[3]: export template
От: Константин Л. Россия  
Дата: 04.05.06 13:37
Оценка:
Здравствуйте, piAnd, Вы писали:

A>Здравствуйте, Шахтер, Вы писали:

A>>>Будет ли время компиляции уменьшаться в проекте, где много шаблонов?

Ш>>Может быть. За счет уменьшения размеров заголовков сократится время парсинга (и считывания файлов с диска).

Ш>>Другой вопрос -- насколько. Вполне может быть, что выигрыш окажется неощутимым.
A>А в чем тогда плюс этой конструкции?
Плюс сомнительный. Саттер в "Exceptional c++ Style" все разжевывает
Estuve en Granada y me acorde' de ti
Re[4]: export template
От: alexeiz  
Дата: 04.05.06 20:26
Оценка: 1 (1) :))
Здравствуйте, Константин Л., Вы писали:

КЛ>Здравствуйте, piAnd, Вы писали:

A>>А в чем тогда плюс этой конструкции?
КЛ>Плюс сомнительный. Саттер в "Exceptional c++ Style" все разжевывает

Саттер не просёк. У него никогда не было компилятора, поддерживающего export.
Re[4]: export template
От: alexeiz  
Дата: 04.05.06 23:09
Оценка:
Здравствуйте, Константин Л., Вы писали:
...

Вот, кстати, один из недавних споров на c++.moderated:
здесь

FWIW: everyone I've talked to who has actually used export has
liked it. It's part of C++, and a compiler which doesn't
implement it isn't really a C++ compiler.

Re[3]: export template
От: Шахтер Интернет  
Дата: 05.05.06 06:57
Оценка:
Здравствуйте, piAnd, Вы писали:

A>Здравствуйте, Шахтер, Вы писали:

A>>>Будет ли время компиляции уменьшаться в проекте, где много шаблонов?

Ш>>Может быть. За счет уменьшения размеров заголовков сократится время парсинга (и считывания файлов с диска).

Ш>>Другой вопрос -- насколько. Вполне может быть, что выигрыш окажется неощутимым.
A>А в чем тогда плюс этой конструкции?

Сокращает объем заголовков и скрывает реализацию.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.