Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.156] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 334 335 [336] 337 338 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#5026
,
|
|
|
|
Нет, я так не считаю. Но если ты не имел в виду препроцессор языков C/C++, тебе следовало об этом сообщить. И уж если не ограничиваться примитивными препроцессорами, то любой компилятор суть такой вот непримитивный препроцессор.
|
|
Сообщ.
#5027
,
|
|
|
|
Цитата IL_Agent @ Шаблоны не разворачиваются ни в какой код, кроме машинного. Проверка синтаксиса начинается ещё до инстанцирования. Оптимизация кода начинается до инстанцирования. Шаблоны это не фича конвертирующая чего то там в С++. Шаблоны это и есть С++. Почему ты не слушаешь людей, которые всё же разбираются в вопросе? Qraizer, ты, видимо, считаешь, что если препоцессор, то значит - крайне примитивное. Несколькими постами ранее была ссылка на вики. Так вот, там макросы лиспа приводятся в качестве примера препроцессора. Только там они пишутся на том же языке, что и код, в который они разворачиваются. |
|
Сообщ.
#5028
,
|
|
|
|
Цитата Повстанець @ Шаблоны не существуют обособленно от всего остального С++, как препроцессор. Это такая же часть функционала языка, как, допустим, наличие классов. Да какая разница, часть или не часть. Принцип работы это не меняет. |
|
Сообщ.
#5029
,
|
|
|
|
Цитата IL_Agent @ Ты абсолютно не знаком с принципом работы шаблонов. И не слушаешь тех, кто знаком. Твои утверждения голословны. Да какая разница, часть или не часть. Принцип работы это не меняет. |
|
Сообщ.
#5030
,
|
|
|
|
Нет фичи "сливания" компилятором своих внутренних структур в эквивалентный код на плюсах? Ну, да, в теории она возможна, на практике - вряд ли нужна. IL_Agent, я вам предлагаю задачу, с которой уже двое дельфистов слились, перед этим тоже громко вещавших Цитата Romkin @ Как раз у этих конкурентой для метапрограммирования все есть исходно и в языке, просто мозгу, который запорчен примитавами шаблонов и макросов, врубиться в это невозможно Раз уж то не могли бы вот эту хрень ![]() ![]() public static Tuple<T1> Create<T1>(T1 item1); public static Tuple<T1, T2> Create<T1, T2>(T1 item1, T2 item2); public static Tuple<T1, T2, T3> Create<T1, T2, T3>(T1 item1, T2 item2, T3 item3); public static Tuple<T1, T2, T3, T4> Create<T1, T2, T3, T4>(T1 item1, T2 item2, T3 item3, T4 item4); public static Tuple<T1, T2, T3, T4, T5> Create<T1, T2, T3, T4, T5>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5); public static Tuple<T1, T2, T3, T4, T5, T6> Create<T1, T2, T3, T4, T5, T6>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6); public static Tuple<T1, T2, T3, T4, T5, T6, T7> Create<T1, T2, T3, T4, T5, T6, T7>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7); public static Tuple<T1, T2, T3, T4, T5, T6, T7, Tuple<T8>> Create<T1, T2, T3, T4, T5, T6, T7, T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8); сделать менее похожей на поделку индусского джуниора? |
|
Сообщ.
#5031
,
|
|
|
|
Цитата IL_Agent @ Меняет и сильно. Шаблоны компилятся полностью (почти) в точке их определения. В точках использования (точнее инстанцирования, это не одно и то же) компилятор только досвязывает имена и выполняет кодогенерацию. Принцип работы это не меняет. |
|
Сообщ.
#5032
,
|
|
|
|
Цитата Повстанець @ Шаблоны не разворачиваются ни в какой код, кроме машинного. И в какой же машинный код развернётся вот это, например: ![]() ![]() template<typename A,typename B> A f(B x, A y) { return x+y; } ? Цитата Повстанець @ Проверка синтаксиса начинается ещё до инстанцирования. Дык само собой, у шаблонов есть синтаксис, который надо проверять, и который ужасен, кстати . |
|
Сообщ.
#5033
,
|
|
|
|
Цитата Qraizer @ Меняет и сильно. Шаблоны компилятся полностью (почти) в точке их определения. В точках использования (точнее инстанцирования, это не одно и то же) компилятор только досвязывает имена и выполняет кодогенерацию. Цитата Повстанець @ Да, компиляцию упустил. Компиляция начинается до инстанцирования. Шаблоны не разворачиваются ни в какой код, кроме машинного. Проверка синтаксиса начинается ещё до инстанцирования. Оптимизация кода начинается до инстанцирования. Шаблоны это не фича конвертирующая чего то там в С++. Шаблоны это и есть С++. Почему ты не слушаешь людей, которые всё же разбираются в вопросе? |
|
Сообщ.
#5034
,
|
|
|
|
MyNameIsIgor, у меня произвольнопараметрические мультиметоды на C++03 именно такими и получаются
. На variadic templates, конечно, изящнее. |
|
Сообщ.
#5035
,
|
|
|
|
Цитата IL_Agent @ Дык само собой, у шаблонов есть синтаксис, который надо проверять, и который ужасен, кстати И чем же он ужаснее синтаксиса шарповских дженериков? |
|
Сообщ.
#5036
,
|
|
|
|
Цитата IL_Agent @ Тут trainer одного за троллизм уже приструнивал. IL_Agent, где аргументы? Чем синтаксис шаблонных конструкций оличается от нешаблонных, окромя лидирующего template<>? Дык само собой, у шаблонов есть синтаксис, который надо проверять, и который ужасен, кстати |
|
Сообщ.
#5037
,
|
|
|
|
А как препроцессор отличит инстанцирование от вызова нешаблонной функции, ведь разрешение перегрузки выполняется компилятором? Или разрешение перегрузки - это тоже препроцессор? |
|
Сообщ.
#5038
,
|
|
|
|
Цитата Qraizer @ MyNameIsIgor, у меня произвольнопараметрические мультиметоды на C++03 именно такими и получаются . На variadic templates, конечно, изящнее. Да, но у нас есть списки типов и boost.preprocessor. Только для наших друзей это примитивно и не достойно их высокоразвитого мозга. Вот пусть и покажут, как это делается белыми людьми. |
|
Сообщ.
#5039
,
|
|
|
|
Цитата IL_Agent @ Так вот, там макросы лиспа приводятся в качестве примера препроцессора. Только там они пишутся на том же языке, что и код, в который они разворачиваются. Макросы лиспа очень слабо связаны с шаблонами С++. Я бы даже сказал, что между ними практически нет ничего общего. |
|
Сообщ.
#5040
,
|
|
|
|
Цитата MyNameIsIgor @ Нет фичи "сливания" компилятором своих внутренних структур в эквивалентный код на плюсах? Ну, да, в теории она возможна, на практике - вряд ли нужна. Я про это и говорю. Внутренние структуры компилятора, полученные в результате компиляции шаблонов, соответствуют некоторому плюсовому нешаблонному коду. Препроцессору С тоже ничего не мешает так работать. Ну а С# тут не причём. В нём нет аналогичного препроцессора. |