Re: Шаблоны с++
От: krizis  
Дата: 04.07.10 13:16
Оценка: 7 (2) +5
Здравствуйте, agronom25, Вы писали:

A>Такой общий вопрос — насколько часто в реальных проектах используется обобщенное программирование (шаблоны) . STL, boost конечно используется повсеместно — а вот насколько реально необходимо создавать свои шаблонные классы — не на уровне простых классов — а целых иерархий ?


Примерно настолько часто, насколько пишешь библиотеки.
Re: Шаблоны с++
От: okman Беларусь https://searchinform.ru/
Дата: 04.07.10 12:35
Оценка: 2 (1) +2
Приветствую.

В шаблонах обычно нет необходимости, если только это не компоненты с явным
прицелом на вариации используемых типов и повторное использование.
Например, трудно представить компонент для работы с сетевым соединением,
параметризированный чем-то другим, нежели Connection или Socket — примение
шаблонов было бы в данном случае избыточным.

С другой стороны, с помощью шаблонов можно достичь определенной гибкости,
параметризируя интерфейсы или политики использования, причем данные техники
дают некоторый выигрыш в производительности по сравнению с обычными полиморфными,
так как разрешаются на стадии компиляции, а не выполнения. Это тоже важно.
Если данный подход уместно применить на уровне всего приложения или его отдельных
слоев, то это хороший показатель того, что к решению нужно подойти обобщенно.

Я считаю, что проектировать иерархии вообще не стоит. Получается обычно коряво и
обходится дорого во всех отношениях — один класс тянет за собой весь фреймворк.
Простые компоненты, которые можно быстро настроить и использовать изолированно, гораздо ценней.
Re: Шаблоны с++
От: minorlogic Украина  
Дата: 04.07.10 14:46
Оценка: +1 -1
Здравствуйте, agronom25, Вы писали:

A>Такой общий вопрос — насколько часто в реальных проектах используется обобщенное программирование (шаблоны) . STL, boost конечно используется повсеместно — а вот насколько реально необходимо создавать свои шаблонные классы — не на уровне простых классов — а целых иерархий ?



Очень редко, скорее исключение из правил. Обычно все что хочется сделать на шаблонах уже гденить качественно реализованно. Исключение это интеграция обобщенной библиотеки.
... << RSDN@Home 1.2.0 alpha 4 rev. 1237>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re: Шаблоны с++
От: Smooky Россия  
Дата: 04.07.10 15:36
Оценка: -1
В реальных проектах всё реже и реже есть необходимость в обобщённом
программировании, по многим объективным причинам. Да и вообще, в некотором
роде, академическое программирование уже утратило свою ценность... Я как то
еще лет 10 назад говорил: Всё что нужно для решения реальных задач
(инстументарий, библиотеки и т.д.) — уже всё давно написано, и все
велосипеды уже давно изобретены, и не один!
Также могу с большой уверенностью сказать, что более 40% возможностей
библиотеки Boost врядли ктото использовал, просто не нужно... Для меня это
только всего лишь какой то полигон для изучения нового, но в реальности мало
применимо. (Хотя конечно же библиотека замечательная и достойная).
Другое дело, что те проекты которые мне приходилось реализовывать в 90-ых
годах, было бы очень здорово отрефакторить и переделать с использованием
того же Boost и ряда современных технологий, но врядли это ктото позволит
себе, работает же, и ладно...
Posted via RSDN NNTP Server 2.1 beta
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
Re: Шаблоны с++
От: denisko http://sdeniskos.blogspot.com/
Дата: 04.07.10 18:11
Оценка: +1
Здравствуйте, agronom25, Вы писали:

A>Такой общий вопрос — насколько часто в реальных проектах используется обобщенное программирование (шаблоны) . STL, boost конечно используется повсеместно — а вот насколько реально необходимо создавать свои шаблонные классы — не на уровне простых классов — а целых иерархий ?

У нас, в основном, для оптимизации используется. Пишется с++ код для общего случая, потом на интринсиках\асме пишется для каждого конкретного случая реализация.
<Подпись удалена модератором>
Re[4]: Шаблоны с++
От: peterbes Россия  
Дата: 04.07.10 18:39
Оценка: :)
Здравствуйте, Smooky, Вы писали:

S>А дело в том, что в программерском ремесле за последнее десятилетие ничего

S>собственно прорывного и не произошло, за исключением Web и Mobile
S>технологий... Всё остальное либо по протоптанной тропе, либо доработка и
S>модификации уже написанного и придуманного... Фундамент был уже давно
S>заложен и окна прорублены! Сугубо моё мнение.

Не совсем, но согласен. Щас вас затопчут.
Шаблоны с++
От: agronom25  
Дата: 04.07.10 10:57
Оценка:
Такой общий вопрос — насколько часто в реальных проектах используется обобщенное программирование (шаблоны) . STL, boost конечно используется повсеместно — а вот насколько реально необходимо создавать свои шаблонные классы — не на уровне простых классов — а целых иерархий ?

12.07.10 13:16: Перенесено из 'C/C++'
Re: Шаблоны с++
От: rm822 Россия  
Дата: 04.07.10 12:31
Оценка:
Здравствуйте, agronom25, Вы писали:

A>Такой общий вопрос — насколько часто в реальных проектах используется обобщенное программирование (шаблоны) . STL, boost конечно используется повсеместно — а вот насколько реально необходимо создавать свои шаблонные классы — не на уровне простых классов — а целых иерархий ?

У меня эта потребонсть со временем только падала. Сейчас применяю их скорее эпизодически. Если в цифрах — то несколько раз в год
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Шаблоны с++
От: peterbes Россия  
Дата: 04.07.10 16:27
Оценка:
Здравствуйте, Smooky, Вы писали:

Ладно, на основе boost-а, хоть и страшен он как смертный грех, строят вполне мощные библиотеки, хотя бы cgal, а нужные для работы аналоги всегда существовали до всяких бустов, все вопросы применения того или иного инструмента лежат чисто в практической плоскости, что удобно, то и используют. Если код не под армы и dsp пишется, то в реальном проекте трудно себе представить такое игнорирование шаблонов.
Re[3]: Шаблоны с++
От: Smooky Россия  
Дата: 04.07.10 18:02
Оценка:
А дело в том, что в программерском ремесле за последнее десятилетие ничего
собственно прорывного и не произошло, за исключением Web и Mobile
технологий... Всё остальное либо по протоптанной тропе, либо доработка и
модификации уже написанного и придуманного... Фундамент был уже давно
заложен и окна прорублены! Сугубо моё мнение.
Posted via RSDN NNTP Server 2.1 beta
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
Re[3]: Шаблоны с++
От: denisko http://sdeniskos.blogspot.com/
Дата: 04.07.10 18:12
Оценка:
Здравствуйте, peterbes, Вы писали:

P>Здравствуйте, Smooky, Вы писали:


P>Ладно, на основе boost-а, хоть и страшен он как смертный грех, строят вполне мощные библиотеки, хотя бы cgal, а нужные для работы аналоги всегда существовали до всяких бустов, все вопросы применения того или иного инструмента лежат чисто в практической плоскости, что удобно, то и используют. Если код не под армы и dsp пишется, то в реальном проекте трудно себе представить такое игнорирование шаблонов.

Cgal dlib -- показательный пример как код в стиле "я хочу быть александреску" может порождать бешеное число граблей при использовании.
<Подпись удалена модератором>
Re[4]: Шаблоны с++
От: peterbes Россия  
Дата: 04.07.10 18:36
Оценка:
Здравствуйте, denisko, Вы писали:

D>Cgal dlib -- показательный пример как код в стиле "я хочу быть александреску" может порождать бешеное число граблей при использовании.


Либа была интересна, но я ее (честно) не использовал, у меня не было таких задач, потому интересно ваше мнение. Мне был интересен алгоритм морфинга 3D объектов в 3DMax, а в cgal он реализован. Вопрос без наездов. Собственно, что там кривого?
Re[5]: Шаблоны с++
От: denisko http://sdeniskos.blogspot.com/
Дата: 04.07.10 18:39
Оценка:
Здравствуйте, peterbes, Вы писали:

P>Здравствуйте, denisko, Вы писали:


D>>Cgal dlib -- показательный пример как код в стиле "я хочу быть александреску" может порождать бешеное число граблей при использовании.


P>Либа была интересна, но я ее (честно) не использовал, у меня не было таких задач, потому интересно ваше мнение. Мне был интересен алгоритм морфинга 3D объектов в 3DMax, а в cgal он реализован. Вопрос без наездов. Собственно, что там кривого?

Куча проверок, которые отключаются через одно место или не отключаются вообще в случае малейшей ошибки какого-либо программиста в проекте.
<Подпись удалена модератором>
Re[6]: Шаблоны с++
От: peterbes Россия  
Дата: 04.07.10 19:07
Оценка:
Здравствуйте, denisko, Вы писали:


P>>Либа была интересна, но я ее (честно) не использовал, у меня не было таких задач, потому интересно ваше мнение. Мне был интересен алгоритм морфинга 3D объектов в 3DMax, а в cgal он реализован. Вопрос без наездов. Собственно, что там кривого?

D>Куча проверок, которые отключаются через одно место или не отключаются вообще в случае малейшей ошибки какого-либо программиста в проекте.

Каким образом?
Re: Шаблоны с++
От: nen777w  
Дата: 04.07.10 20:24
Оценка:
Здравствуйте, agronom25, Вы писали:

A>Такой общий вопрос — насколько часто в реальных проектах используется обобщенное программирование (шаблоны) . STL, boost конечно используется повсеместно — а вот насколько реально необходимо создавать свои шаблонные классы — не на уровне простых классов — а целых иерархий ?


А вы посмотрите на AGG
Re: Шаблоны с++
От: jazzer Россия Skype: enerjazzer
Дата: 05.07.10 05:59
Оценка:
Здравствуйте, agronom25, Вы писали:

A>Такой общий вопрос — насколько часто в реальных проектах используется обобщенное программирование (шаблоны) . STL, boost конечно используется повсеместно — а вот насколько реально необходимо создавать свои шаблонные классы — не на уровне простых классов — а целых иерархий ?


Свои классы, в основном вспомогательные (типа traits) — постоянно.
Иерархии — крайне редко, практически никогда, если не считать иерархиями метафункции, конечно.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: Шаблоны с++
От: igna Россия  
Дата: 05.07.10 14:37
Оценка:
Здравствуйте, agronom25, Вы писали:

A>Такой общий вопрос — насколько часто в реальных проектах используется обобщенное программирование (шаблоны) . STL, boost конечно используется повсеместно — а вот насколько реально необходимо создавать свои шаблонные классы — не на уровне простых классов — а целых иерархий ?


Вопрос состоит из двух частей:

а) насколько часто используются шаблоны;
б) насколько часто используются шаблонные классы (точнее шаблоны классов).

Мои ответы на эти вопросы отличаются: если шаблонные классы я пишу иногда от случая к случаю, то шаблоны функций довольно часто, в основном для того чтобы:

1) сделать обобщенную функцию параметром;
2) сделать пару итераторов параметрами.
Re: Шаблоны с++
От: MasterZiv СССР  
Дата: 05.07.10 21:58
Оценка:
> Такой общий вопрос — насколько часто в реальных проектах используется
> обобщенное программирование (шаблоны) .

Очень от проекта зависит.

Может быть от "не использовать вообще шаблоны"
через "использовать STL коллекции только для реализации"
до "безумный шаблонизированный С++ в стиле Александреску и boost-а"

STL, boost конечно используется
> повсеместно — а вот насколько реально необходимо создавать свои
> шаблонные классы — не на уровне простых классов — а целых иерархий ?

Иерархии классов и обобщённое программирование -- вещи почти друг
другу противоречащие.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Шаблоны с++
От: Head Ache  
Дата: 07.07.10 07:26
Оценка:
Здравствуйте, Smooky, Вы писали:

S>В реальных проектах всё реже и реже есть необходимость в обобщённом

S>программировании, по многим объективным причинам. Да и вообще, в некотором
S>роде, академическое программирование уже утратило свою ценность...

Например,

template<class Screen>
void MyCalculation(Screen& S)
{
...
S.ShowSomething(value);
...
S.ShowSomethingElse(other_value);
...
}

и линкуйте на здоровье как угодно
а не хотите показывать — пишите в лог, тож мона...
Этот аккаунт покинут.
Re[2]: Шаблоны с++
От: Head Ache  
Дата: 08.07.10 00:55
Оценка:
Здравствуйте, MasterZiv, Вы писали:

MZ>Иерархии классов и обобщённое программирование -- вещи почти друг

MZ>другу противоречащие.

полиморфный объект не может быть параметром шаблона?
или полиморфный объект не может использовать шаблоны в реализации?
Этот аккаунт покинут.
Re[3]: Шаблоны с++
От: Smooky Россия  
Дата: 08.07.10 03:55
Оценка:
Head Ache wrote:

> полиморфный объект не может быть параметром шаблона?

> или полиморфный объект не может использовать шаблоны в реализации?

Да просто как правило, действительно, полиморфизм времени компиляции
(шаблоны) и полиморфизм времени выполнения (механизмы виртуализации) редко
сочетают! Но конечно же, бывают и исключения!

П.С. Последнее время редко встречал какие та супер витиеватые иерархии
классов... разве что только в каких та крупных библиотеках (Qt например)...
Posted via RSDN NNTP Server 2.1 beta
Только Путин, и никого кроме Путина! О Великий и Могучий Путин — царь на веки веков, навсегда!
Смотрю только Соловьева и Михеева, для меня это самые авторитетные эксперты.
КРЫМ НАШ! СКОРО И ВСЯ УКРАИНА БУДЕТ НАШЕЙ!
Re: Шаблоны с++
От: morm Россия  
Дата: 11.07.10 06:38
Оценка:
Здравствуйте, agronom25, Вы писали:

A>Такой общий вопрос — насколько часто в реальных проектах используется обобщенное программирование (шаблоны) . STL, boost конечно используется повсеместно — а вот насколько реально необходимо создавать свои шаблонные классы — не на уровне простых классов — а целых иерархий ?


В задачах моделирования физ. процессов — постоянно. Строю систему на стратегиях в стиле Александреску — очень помогает проводить сравнительный анализ вычислительных алгоритмов.
В боевых системах — сделал один раз платформу, теперь только простые классы от traits наследую, вставляю и все работает Боевые системы (3) примерно схожи по архитектуре, поэтому так просто получилось.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.