powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Есть ли кроме С++ языки с шаблонами классов?
18 сообщений из 268, страница 11 из 11
Есть ли кроме С++ языки с шаблонами классов?
    #35120882
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo Gluk (Kazan)если несчастным прогерам приходится работать с кривым кодом, разьве его зло не становится неизбежным ?это со своим, что ли, кривым кодом? И можно ли этот код сделать прямым? Скажем, буст какой-нить? К тому же blinded сказал, что вот если макросы использовать с умом, то будет счастье. Я так понял, это призыв использовать его также и в новых проектах.

ATL видел ?
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35120887
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blinded Gluk (Kazan) blindedА с другой стороны многократно повторить одну и ту же последовательность операторов и чтоб не ошибиться. тоже исскусство

+1 :)

Шаблоны помогают (лучше чем макросы)
Не всегда, хотябы теже TYPELIST

Именно потому в C++ без них не обойтись
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35120891
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedНичего вот добавят концепции и все станет хорошо с сообщениями, вот только писать горазда больше придется Ещё больше???

blindedНе всегда, хотябы теже TYPELISTвот-вот, я про них ещё давно вспомнил. А казалось бы, почему бы не юзать собственно шаблоны, на которых эти списки сделаны?
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35120908
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoА казалось бы, почему бы не юзать собственно шаблоны, на которых эти списки сделаны?

с этого места можно поподробнее ?
макросы там необходимы, поскольку без них списки типов выглядят реально страшно
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35120920
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)ATL видел ? нет… ы… Интерфейсы компонентов вроде на idl пишут? Зачем там какие-то макросы?
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35120923
Фотография TonY.Soprano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan) ATL видел ?

+1
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35120926
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)макросы там необходимы, поскольку без них списки типов выглядят реально страшноэто треугольные скобочки вместо круглых, что ли, реально страшные?
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35120945
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo Gluk (Kazan)макросы там необходимы, поскольку без них списки типов выглядят реально страшноэто треугольные скобочки вместо круглых, что ли, реально страшные?

Неа, это когда эти скобочки растягиваются в километр (в сообщении об ошибке компиляции).
Реально жутковато становится :( Не LISP все-таки
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35120948
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ладна, поздравляю всех с тяпницей
домой пора
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35120966
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo blindedНичего вот добавят концепции и все станет хорошо с сообщениями, вот только писать горазда больше придется Ещё больше???

Ну тот пример что с min в С# выглядеть будет примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
concept LessThenCompatable<typename T> // собственно формулировка требования к типу
{
  bool operator<(T left, T right);
}

template<typename T>                            // функция требующая соотв ограничения
where LessThenComparable<T>           
const T& min(const T& left, const T& right)
{
  return left < right ? left : right;
}

concept_map LessThenComparable<some_type> // определение а что значит соотв требование для некотого типа
{
  bool operator<(some_type left, some_type right)
  {
   ....
  }
};
maXmo
blindedНе всегда, хотябы теже TYPELISTвот-вот, я про них ещё давно вспомнил. А казалось бы, почему бы не юзать собственно шаблоны, на которых эти списки сделаны?
Читается паршиво. пишется еще паршивее. ну и потом случай то простенький.
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35120969
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoвот-вот, я про них ещё давно вспомнил. А казалось бы, почему бы не юзать собственно шаблоны, на которых эти списки сделаны?
Variadic Templates из C0x ?
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35124816
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Неа, это когда эти скобочки растягиваются в километр (в сообщении об ошибке компиляции).разве макросы от этого спасают?

Ну тот пример что с min в С# выглядеть будет примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
T min<T>(T left, T right) where T : IComparable<T>
{
  return left.CompareTo(right)<0 ? left : right;
}

class Employee: IComparable<Employee>
{
  int CompareTo(Employee left, Employee right)
  {
   ....
  }
}
IComparable – стандартный интерфейс.
А что не нравится? Требуешь определённого интерфейса – выражай своё требование. Плюс: код получается самодокументируемый. И не понадобится узнавать методом тыка, что ещё там забыли реализовать.
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35124894
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo Gluk (Kazan)Неа, это когда эти скобочки растягиваются в километр (в сообщении об ошибке компиляции).разве макросы от этого спасают?

Ну тот пример что с min в С# выглядеть будет примерно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
T min<T>(T left, T right) where T : IComparable<T>
{
  return left.CompareTo(right)<0 ? left : right;
}

class Employee: IComparable<Employee>
{
  int CompareTo(Employee left, Employee right)
  {
   ....
  }
}
IComparable – стандартный интерфейс.
А что не нравится? Требуешь определённого интерфейса – выражай своё требование. Плюс: код получается самодокументируемый. И не понадобится узнавать методом тыка, что ещё там забыли реализовать.

Я в легком смятении
Ответ в стиле в огороде бузина, а в киеве дядька.

Макросы делают списки типов несколько более презентабельными в исходном коде (что от невнятных ошибок компиляции само собой не спасает, но на безрыбье сам раком встанешь).
Каким образом ты с этим связал свой пример на C#-пе для меня осталось загадкой.

Кстати, ты вообще списки типов видел, или спорим об устрицах ?
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35124996
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Макросы делают списки типов несколько более презентабельнымия не считаю, что они из-за этого становятся неизбежным злом.

Gluk (Kazan)Каким образом ты с этим связал свой пример на C#-пе для меня осталось загадкой.то я блиндеду писал.

Gluk (Kazan)Кстати, ты вообще списки типов видел, или спорим об устрицах ?списки видел, причём в доках (кажется таковые имеют место быть) было услужливо забыто указать исходную темплейтную форму списков, за которой пришлось лезть в исходники. Ничего такого ужасного я там не увидел.
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35125343
Фотография blinded
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин дед уже говорил, что считает неверным решать проблему ограничения свойт класса-параметра щшаблона путем наследования от некоторого интерфейса. Поскольку это слишком ограничительная политика. Представим что в качестве шаблона придется использовать сторонний класс, естественно сторонний производитель ничего не знал о б ограничениях, накладываемых вашим дженериком. Единственный способо в такой ситуации - отнаследоваться от стороннего класса, подмешав нужные интерфейсы, ситуация осложниться когда у тебя не один класс а целая иерархия...
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35125518
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blindedЕдинственный способо в такой ситуации - отнаследоваться от стороннего класса, подмешав нужные интерфейсы, ситуация осложниться когда у тебя не один класс а целая иерархия...шарп разве позволяет множественное наследование? (вопрос теоретический)
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35125773
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych blindedЕдинственный способо в такой ситуации - отнаследоваться от стороннего класса, подмешав нужные интерфейсы, ситуация осложниться когда у тебя не один класс а целая иерархия...шарп разве позволяет множественное наследование? (вопрос теоретический)

Не путай наследование интерфейсов и реализации
...
Рейтинг: 0 / 0
Есть ли кроме С++ языки с шаблонами классов?
    #35125801
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo Gluk (Kazan)Макросы делают списки типов несколько более презентабельнымия не считаю, что они из-за этого становятся неизбежным злом.


1. В исходном тексте списки типов выглядят вменяемо, благодаря макросам
2. В сообщениях об ошибках мы видим их во всей неприглядной красе, поскольку компилятору насрать на макросы

Из этого следует:

1. Макросы полезны в данной задаче
2. Макросы зло, поскольку компилятору на них плевать (это приводит к проблемам не только сообщениями об ошибках, но и при пошаговой отладке, например)

Тебе придется поверить мне на слово (поскольку более распинаться на эту тему я не собираюсь), что это не единственная задача в C++, в которой препроцессор полезен (достаточно вспомнить, что include и условная компиляция - тоже дело рук препроцессора), что в конечном итоге делает его зло (и зло дел его рук, таких как макросы) неизбежным.
Самая главная бяка макросов, это то что также как компилятору наплевать на макросы, также и последним глубоко безразличны пространства имен, столь милые компилятору. Макросы тупо шарашут глобальную замену по исходному текту

Я доходчиво объяснил ?

maXmo
Gluk (Kazan)Каким образом ты с этим связал свой пример на C#-пе для меня осталось загадкой.то я блиндеду писал.

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

maXmo
Gluk (Kazan)Кстати, ты вообще списки типов видел, или спорим об устрицах ?списки видел, причём в доках (кажется таковые имеют место быть) было услужливо забыто указать исходную темплейтную форму списков, за которой пришлось лезть в исходники. Ничего такого ужасного я там не увидел.[/quot]

В доках по ATL тоже много чего услужливо не указано
А не страшные они пока в списке не набреться штук 20 типов и пока ты не забудешь поставить где нибудь запятую, пробел или с букаффкой где не ошибешься. Сразу после этого велкам в удивительное и необъятное сообщение об ошибке компиляции. Некоторые люди специальные утилиты пишут, чтобы понять эти сакральные тексты
...
Рейтинг: 0 / 0
18 сообщений из 268, страница 11 из 11
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Есть ли кроме С++ языки с шаблонами классов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]