Вот дожил до 45 лет и не знаю, зачем в С++ шаблоны.
Вот... совсем. Не использую их, да и всё тут.
Не, конечно vector<int> написать могу.
И прочее использование STL-я.
Но больше ничего с шаблонами не делаю.
Люди! А для чего вы используете шаблоны?
Может я чего упускаю?
Сложные программы пишу, например, в известном САПРе OrCad есть мой код.
Ну например графика. OpenGL для десктопов поддерживает double, a OpenGL ES толкьо float
Видимо имеет смысл делать матрицы и вектора (в смысле не контейнеры, а из геометрии) типо-независимыми? Шаблоны тут удобны
Здравствуйте, Varavva, Вы писали:
V>Здравствуйте, alpha21264, Вы писали:
V>Ну например графика. OpenGL для десктопов поддерживает double, a OpenGL ES толкьо float V>Видимо имеет смысл делать матрицы и вектора (в смысле не контейнеры, а из геометрии) типо-независимыми? Шаблоны тут удобны
Эээ... это одновременно, или это две разные сборки? Одна для OpenGL, другая для OpenGL ES?
Просто если это второе, то я бы обошелся typedef в каком-нибудь хедере.
Ну то есть идея-то понятна, немного разные типы в одной и той же функции.
Просто я пытался вообразить себе случай, когда это нужно и не вообразил.
А ещё какие случаи бывают?
Здравствуйте, alpha21264, Вы писали:
A>Народ!
A>Вот дожил до 45 лет и не знаю, зачем в С++ шаблоны. A>Вот... совсем. Не использую их, да и всё тут. A>Не, конечно vector<int> написать могу. A>И прочее использование STL-я. A>Но больше ничего с шаблонами не делаю. A>
A>Люди! А для чего вы используете шаблоны? A>Может я чего упускаю? A>
A>Сложные программы пишу, например, в известном САПРе OrCad есть мой код. A>
100%, сам юзаю их тока для контейнеров и всяких функторов/эвентов, всё
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, alpha21264, Вы писали:
A>Вот дожил до 45 лет и не знаю, зачем в С++ шаблоны. A>Вот... совсем. Не использую их, да и всё тут. A>Не, конечно vector<int> написать могу. A>И прочее использование STL-я. A>Но больше ничего с шаблонами не делаю.
A>Люди! А для чего вы используете шаблоны? A>Может я чего упускаю?
В общем-то ничего не упускаешь. Есть код и есть код.
Один решает конкретную задачу (твой случай), другой предполагается пихать во все дыры (та же стандартная библиотека).
Ооочень редко приходится использовать шаблоны для каких-нибудь адаптеров для получения данных там, где нет места "традиционному" полиморфизму.
Типа получить координаты пинов и вий. Но это просто чтобы дважды код не писать.
A>Сложные программы пишу, например, в известном САПРе OrCad есть мой код.
Агаааа, конкурент! А мой — в Hyperlynx, Expedition, TopoR, Simbeor
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, alpha21264, Вы писали:
A>Люди! А для чего вы используете шаблоны? A>Может я чего упускаю? A>
Templates делают ваш код коротким, максимально структурированным и reusable. Не бесплатно — сложность понимания кода и его отладка увеличатся, время компиляции также.
Здравствуйте, a_g_99, Вы писали:
__>Templates делают ваш код коротким, максимально структурированным и reusable.
это маркетинг и теория, в реальности всё совсем по другому
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, a_g_99, Вы писали:
K>>это маркетинг и теория, в реальности всё совсем по другому
__>Что же в вашей "реальности" по другому?
А в реальности 90% кода пишется под конкретную задачу и шаблоны там ничем не помогут. Вот сделать код нечитабельным — это запросто (таких примеров предостаточно).
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, a_g_99, Вы писали:
__>Здравствуйте, Kingofastellarwar, Вы писали:
K>>это маркетинг и теория, в реальности всё совсем по другому
__>Что же в вашей "реальности" по другому?
ну например в моей реальности любой шаблон рано или поздно сталкивается с тем, что как тока в каком-ньть месте логика хоть чуть-чуть зависит от типа то шаблон становится бесполезным
а вообще в 99% случаев просто нет ниткакой необходимости что-то типизировать
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, a_g_99, Вы писали:
__>Здравствуйте, alpha21264, Вы писали:
A>>Люди! А для чего вы используете шаблоны? A>>Может я чего упускаю? A>>
__>Templates делают ваш код коротким, максимально структурированным и reusable. Не бесплатно — сложность понимания кода и его отладка увеличатся, время компиляции также.
Ну вот я так и знал, что обязательно будут священные войны.
А зачем нужно такое средство, при котором увеличивается сложность понимания и отладки?
Ведь сложность понимания для программиста — один из важных параметров, если не самый важный.
Вопрос-то был не про это. Не про то, нужны ли ли не нужны шаблоны. Допустим, нужны.
А про то, как вы их используете.
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>А в реальности 90% кода пишется под конкретную задачу и шаблоны там ничем не помогут. Вот сделать код нечитабельным — это запросто (таких примеров предостаточно).
Ну что за детский сад. "в реальности 90% кода пишется под конкретную задачу и шаблоны там ничем не помогут".
В реальности у вас проект со sloc за 1m и 100500 классов которые "чуть чуть" различаются. И вам нужно создать единую концепцию чтобы не завязнуть в крутом копи-пасте.
В зависимости от сложности уровень абстракции повышается — это цена которую вы платите за сложность. Нет смысла этого пугаться.
Здравствуйте, Kingofastellarwar, Вы писали:
K>ну например в моей реальности любой шаблон рано или поздно сталкивается с тем, что как тока в каком-ньть месте логика хоть чуть-чуть зависит от типа то шаблон становится бесполезным
Специализуйте вашим типом. Это просто инструмент а не святой грааль.
Здравствуйте, Kingofastellarwar, Вы писали:
K>ну например в моей реальности любой шаблон рано или поздно сталкивается с тем, что как тока в каком-ньть месте логика хоть чуть-чуть зависит от типа то шаблон становится бесполезным
Для этого случая, внезапно, придуманы специализации.
Здравствуйте, alpha21264, Вы писали:
A>Ну вот я так и знал, что обязательно будут священные войны.
А чего ты ожидал, создавая тему в КСВ?
A>Вопрос-то был не про это. Не про то, нужны ли ли не нужны шаблоны. Допустим, нужны. A>А про то, как вы их используете.
Так надо было задавать вопрос в С/С++, а не в КСВ.
Здравствуйте, alpha21264, Вы писали:
A>Люди! А для чего вы используете шаблоны?
В общем случае для случаев, когда в С пишут макросы.
Банально: контейнеры, врапперы, прочая кодогенерация.
С шаблонами надо аккуратно, у неопытных падаванов есть риск написать на шаблонах всё и это на стороную тёмную их приведёт.
Самый конечно смак — variadic templates. Офигенная штука для написания всяких быстрых typesafe printf-style логгеров.
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, a_g_99, Вы писали:
__>Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>>А в реальности 90% кода пишется под конкретную задачу и шаблоны там ничем не помогут. Вот сделать код нечитабельным — это запросто (таких примеров предостаточно).
__>Ну что за детский сад. "в реальности 90% кода пишется под конкретную задачу и шаблоны там ничем не помогут". __>В реальности у вас проект со sloc за 1m и 100500 классов которые "чуть чуть" различаются. И вам нужно создать единую концепцию чтобы не завязнуть в крутом копи-пасте.
От проекта зависит. Если это какая-нибудь ORM, то да, похожести будет много.
Что касается проекта топикстартера, то там будет куча очень разного кода, где повторяющихся частей от силы процентов 10.
В основном из повторяющегося это контейнеры, какие-нибудь адаптеры и небольшие низкоуровневые алгоритмы.
Т.е. "кирпичики".
Все, что из них собирается, обычно создается в одном экземпляре и шаблонить там нет смысла — не пригодится. А вот неудобств, типа весь код в .h файле, добавит.
__>В зависимости от сложности уровень абстракции повышается — это цена которую вы платите за сложность. Нет смысла этого пугаться.
Многие помнят Климовскую библиотеку Dockable windows для WTL. Все круто, шаблоны везде, куда ни плюнь. Но отлаживать и расширять это поделие было практически невозможно. Разумный предел должен быть.
_____________________
С уважением,
Stanislav V. Zudin