![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
||
|
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
ты дашь гарантию, что они будут inline? ![]()
пример надуманный (только, чтобы идентифицировать конструкцию) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
jonie |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
Да и в общем случаем "оно вам надо" ? Обычно большой оптимизации по скорости не будет (время вызова скажем __fastcall функции << времени цикла (или иной, не подходящей под определение inline, как посчитает (если посчитает) умный компилятор) , т.о. этим временем можно пренебречь. Безусловно, существуют задачи, в которых размер стека жестко ограничен (кодинг железа, я пологаю),но с таким вещаями я не знаком и думаю там есть средства....
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||
|
|||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
вот именно, переносимость будет -> 0 макросы нужны не только для эмуляции inline -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
ИМХО, есть несколько принципиальных случаев/моментов, когда макросы незаменимы в принципе. То есть аналогию с помощью чисто языковых конструкций построить не удастся.
Есть еще группа случаев, когда удастся, но слишком дорогой ценой (размер или производительность пострадают). В остальных случаях можно использовать [шаблонные ][inline ]функции. |
|||
|
||||
vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
а смысл данного опроса? допустим мне не нравится то то, то то. Кто то согласится, кто то нет. Но это не изменит ничего. Какой-то бесполезный топик. извиняюсь за оффтоп
|
|||
|
||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Вот, если так - поддержу. Только не макросы. MAKCim, вот в реальной жизни все твои примеры с циклами и перегрузкой для макросов когда-нибудь хотелось использовать (я, конечно, про плюсы)? Сомневаюсь, если честно. Не спорю. Вот именно. Можешь представить практические примеры (точнее - похожие на практические), где такое можно было бы красиво использовать? Единственное, что кстати не помешает в препроцессоре - области видимости макросов (банальные блоки). Но это вроде и так обещали... Ну, я бы не сказал, что бесполезный. Может ничего и не изменит (99,99999 %), но поговорить интересно ![]() |
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
хотелось пару раз
хотя пример тоже какой-то нереальный получился ![]() Это сообщение отредактировал(а) MAKCim - 19.5.2007, 15:47 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
![]() ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Любитель,
в С тоже нет шаблонов ![]() а так подумаю на досуге над примером... реальным ![]() кстати, если ты с make знаком, мне там очень нравятся функции типа $(foreach) ... можно было бы писать такое
![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 3 Всего: 43 |
|
|||
|
||||
Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
В G++ схожая техника используется для эмуляции Variadic Templates(google).
А вот самое интересное:
По топику --- для генерации сложных хедеров использую питон. Это сообщение отредактировал(а) Mayk - 19.5.2007, 17:34 -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Ужас! Я на 100% уверен, найдется "профессионал", который сделает определение DIR в одном месте, а подобное использование в другом. Вот обрадуются же те, кто отлаживать возьмется (модифицировать)... ![]() |
||||
|
|||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Кстати, вот одна из нескольких дельных мыслей. Мне несколько раз этой возможности не хватало. Как замутить такое - не нашел, и сам не придумал. Можно ли? Компилятор ведь умеет, когда составляет конструктор копирования по-умолчанию. |
|||
|
||||
Hurricane |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 10.4.2007 Репутация: 6 Всего: 9 |
Что будем перечислять для public, protected, private мемберов наследуемого класса в С++? Я бы понял, если бы это делал компилятор (конструкция языка), но препроцессор... Или препроцессор должен знать правила доступа для разных типов наследования? Или для С должен быть другой препроцессор? Насчет foreach. В С/С++ нет контейнеров как интегральных типов данных _языка_. Они реализованы на уровне библиотек (boost, stl и т.д.), и библиотеки поддерживают foreach (или for_each). Я не понимаю, почему это должно поддерживаться на уровне компилятора (для языка) или препроцессора. Вариант с {...in list} - это тоже частный случай контейнера, он должен каким-то образом создаться. Для каких типов данных? Это должен решать программист или препроцессор? Сравните с Perl, где тип контейнеров - часть языка. |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Hurricane,
про что ты говоришь, и что я написал ![]() -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |