|
Вопрос по С++ |
|
|
|
 |
Ответов
|
Dec 22 2011, 17:29
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(neiver @ Dec 22 2011, 15:57)  Эти возможности успешно заменяют макросы и превосходят их в 99% случаев. Эти возможности вообще нихрена не могут в кодогенерации по сравнению с макросами Код #define CMDLINE_DEVICE_CHOOSE(name, dev1, dev2) \ static char *cmdline_device_##name; \ static int cmdline_device_##name##_setup(char *dev) \ { \ cmdline_device_##name = dev + 1; \ return 0; \ } \ __setup(#name, cmdline_device_##name##_setup); \ void mx23_init_##name(void) \ { \ if (!cmdline_device_##name || \ !strcmp(cmdline_device_##name, #dev1)) \ mx23_init_##dev1(); \ else if (!strcmp(cmdline_device_##name, #dev2)) \ mx23_init_##dev2(); \ else \ pr_err("Unknown %s assignment '%s'.\n", \ #name, cmdline_device_##name); \ }
CMDLINE_DEVICE_CHOOSE(ssp1, mmc, spi1) Цитата Т.е. опять всё наоборот: заявлено, что в С макросы - могущество, а в С++ - геморрой В С++ макросами не пользуются по причине наличия встроенных средств языка - они дублируют часть возможностей макросов но слишком убоги по сравнению с ними.
Сообщение отредактировал sasamy - Dec 22 2011, 17:32
|
|
|
|
|
Dec 23 2011, 09:53
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(XVR @ Dec 23 2011, 11:28)  Весь этот ужас с макросом CMDLINE_DEVICE_CHOOSE замечательно ложится в тривиальный класс С++ (либо шаблонный, либо с парой виртуальных функций - как понравится) Это как раз говорит о том что вы как всегда несете чушь на протяжении этой темы - в шаблонах вы дальше типов не уедете, синтаксис вы не измените и то что этот пример может и не совсем удачный ничего не меняет (я его не писал специально - готовый пример - копипаста) - достаточно внести здесь условную компиляцию например в зависимости от устройства, платформы, конфига добавлять определенный код как ваш "тривиальный" класс превратится в месиво а у меня все будет как прежде ясно и кратко. Цитата либо с парой виртуальных функций да вы вообще похоже не догоняете - у меня код автоматически генерируется а вам с вашими виртуальными ф-ми его вручную набивать надо будет для всех вариантов. CMDLINE_DEVICE_CHOOSE(ssp1, mmc, spi1) CMDLINE_DEVICE_CHOOSE(ssp2, nand_mfc, spi2)
Сообщение отредактировал sasamy - Dec 23 2011, 10:23
|
|
|
|
|
Dec 23 2011, 10:45
|
Местный
  
Группа: Участник
Сообщений: 214
Регистрация: 22-03-10
Из: Саратов
Пользователь №: 56 123

|
Цитата(sasamy @ Dec 23 2011, 13:53)  да вы вообще похоже не догоняете - у меня код автоматически генерируется а вам с вашими виртуальными ф-ми его вручную набивать надо будет для всех вариантов. CMDLINE_DEVICE_CHOOSE(ssp1, mmc, spi1) CMDLINE_DEVICE_CHOOSE(ssp2, nand_mfc, spi2) Если вы не знаете как это сделать красиво, просто и надежно - так и скажите. Это не значит что этого нельзя сделать вообще. Есть такой паттерн проектирования - стратегия называется, с его помощью такое очень легко и красиво реализуется, и без единой директивы условной компиляции. Реализовать его можно как с помощью виртуальных функций, так и на шаблонах. Выбор-же нужной стратегии удобно осуществлять в билд системе.
Сообщение отредактировал neiver - Dec 23 2011, 10:48
|
|
|
|
|
Dec 23 2011, 14:12
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(sasamy @ Dec 23 2011, 15:10)  А теперь подумай хорошенько - стоит ли применять паттерны проектирования в ООП там где это ну совсем нафик не нужно. Вам - не нужно. А вменяемые люди применяют Цитата в шаблонах вы дальше типов не уедете, Да ну??? Цитата синтаксис вы не измените До некоторой степени можно изменить. Цитата и то что этот пример может и не совсем удачный ничего не меняет Это точно, пока вы несете пургу и ни одного удачного примера не привели Цитата достаточно внести здесь условную компиляцию например в зависимости от устройства, платформы, конфига добавлять определенный код Давайте, продемонстрируйте. Цитата как ваш "тривиальный" класс превратится в месиво То, что вы не знаете С++ мы уже поняли, зачем же об этом продолжать так надрывно кричать? Цитата а у меня все будет как прежде ясно и кратко. Да уж, макросы на пол-страницы - это 'ясно и кратко'
|
|
|
|
|
Dec 23 2011, 18:34
|
Знающий
   
Группа: Участник
Сообщений: 783
Регистрация: 22-11-08
Пользователь №: 41 858

|
Цитата(XVR @ Dec 23 2011, 22:26)  Это вы к чему? Там один клоун пример просил использования макросов - но мне самому что-то не хочется больше писать. Цитата Если вы не в курсе, то boost - это С++ библиотека, а не С Об это даже в заголовке написано по ссылке - не думайте что все кругом совсем дебилы, по себе не судите. Я мог бы вам дать ссылки на исходники ядра Linux где макросы очень эффективно используются - вызововы syscall, микроассемблер для mips и проче но вы же ответите в своем стиле - я это напишу красиво - один класс с парой виртуальных ф-ций при этом не приводя ни строчки своего кода, поэтому я вам дал ссылку на библиотку С++ - можете начать отсюда http://www.boost.org/doc/libs/1_48_0/libs/.../doc/index.html
Сообщение отредактировал sasamy - Dec 23 2011, 21:17
|
|
|
|
Сообщений в этой теме
_Артём_ Вопрос по С++ Dec 13 2011, 17:38 neiver Направление мысли правильное. Фабрика вам в помощь... Dec 13 2011, 18:38 _Артём_ Цитата(neiver @ Dec 13 2011, 20:38) Если ... Dec 13 2011, 18:49  neiver Цитата(_Артём_ @ Dec 13 2011, 22:49) Полу... Dec 13 2011, 19:12   _Артём_ Цитата(neiver @ Dec 13 2011, 21:12) Нет. ... Dec 13 2011, 20:07    Сергей Борщ QUOTE (_Артём_ @ Dec 13 2011, 22:07) Что-... Dec 13 2011, 21:06     _Артём_ Цитата(Сергей Борщ @ Dec 13 2011, 23:06) ... Dec 13 2011, 21:37 Danis Цитата(_Артём_ @ Dec 13 2011, 20:38) Созд... Dec 14 2011, 08:33 neiver Цитата(Danis @ Dec 14 2011, 12:33) ИМХО, ... Dec 14 2011, 08:51 _Артём_ Цитата(Danis @ Dec 14 2011, 10:33) ИМХО, ... Dec 14 2011, 09:35  kolobok0 Цитата(_Артём_ @ Dec 14 2011, 13:35) ..А ... Dec 14 2011, 10:57   dxp Цитата(kolobok0 @ Dec 14 2011, 17:57) ну ... Dec 14 2011, 11:59    kolobok0 Цитата(dxp @ Dec 14 2011, 15:59) ...какие... Dec 16 2011, 08:23     ReAl Цитата(kolobok0 @ Dec 16 2011, 10:23) Лич... Dec 16 2011, 09:57      kolobok0 Цитата(ReAl @ Dec 16 2011, 13:57) ...текс... Dec 17 2011, 21:46       dxp QUOTE (kolobok0 @ Dec 18 2011, 04:46) про... Dec 18 2011, 05:33     dxp Цитата(kolobok0 @ Dec 16 2011, 15:23) для... Dec 16 2011, 19:48      Danis Цитата(dxp @ Dec 16 2011, 22:48) А ваши р... Dec 16 2011, 20:55       _Артём_ Цитата(Danis @ Dec 16 2011, 22:55) Но дум... Dec 18 2011, 02:05        kolobok0 Цитата(_Артём_ @ Dec 18 2011, 06:05) ...Э... Dec 19 2011, 03:00         haker_fox QUOTE (kolobok0 @ Dec 19 2011, 11:00) вес... Dec 19 2011, 05:34         dxp QUOTE (kolobok0 @ Dec 19 2011, 10:00) я л... Dec 19 2011, 06:05          kolobok0 Цитата(dxp @ Dec 19 2011, 10:05) ..спасиб... Dec 19 2011, 09:04           sonycman Цитата(kolobok0 @ Dec 19 2011, 13:04) Есл... Dec 19 2011, 10:12    sasamy Цитата(dxp @ Dec 14 2011, 15:59) Поясните... Dec 20 2011, 08:35     dxp QUOTE (sasamy @ Dec 20 2011, 15:35) Самый... Dec 20 2011, 09:24      sasamy Цитата(dxp @ Dec 20 2011, 13:24) Сложный ... Dec 20 2011, 09:50       demiurg_spb Я скажу может крамольную вещь и даже кому-то будет... Dec 20 2011, 10:09        sasamy Цитата(demiurg_spb @ Dec 20 2011, 14:09) ... Dec 20 2011, 10:28         demiurg_spb При чём здесь это?
Как часто принимаются новые ста... Dec 20 2011, 10:33         XVR Цитата(sasamy @ Dec 20 2011, 14:28) Специ... Dec 20 2011, 10:44          sasamy Цитата(XVR @ Dec 20 2011, 14:44) Не испол... Dec 21 2011, 08:01           Сергей Борщ QUOTE (sasamy @ Dec 21 2011, 10:01) Если ... Dec 21 2011, 08:12            sasamy Цитата(Сергей Борщ @ Dec 21 2011, 12:12) ... Dec 21 2011, 08:40             Сергей Борщ QUOTE (sasamy @ Dec 21 2011, 10:40) хотя ... Dec 21 2011, 09:57              sasamy Цитата(Сергей Борщ @ Dec 21 2011, 13:57) ... Dec 21 2011, 11:35               XVR Цитата(sasamy @ Dec 21 2011, 15:35) Идея ... Dec 21 2011, 11:42                sasamy Цитата(XVR @ Dec 21 2011, 15:42) Писали н... Dec 21 2011, 19:47                 ReAl Цитата(sasamy @ Dec 21 2011, 21:47) Тут к... Dec 21 2011, 20:09                  sasamy Цитата(ReAl @ Dec 22 2011, 00:09) могу то... Dec 22 2011, 08:30                   ReAl Цитата(sasamy @ Dec 22 2011, 10:30) Чего ... Dec 22 2011, 10:00                    sasamy Цитата(ReAl @ Dec 22 2011, 14:00) Это мы ... Dec 22 2011, 11:20                     Сергей Борщ QUOTE (sasamy @ Dec 22 2011, 13:20) Скаже... Dec 22 2011, 11:39                      sasamy Цитата(Сергей Борщ @ Dec 22 2011, 15:39) ... Dec 22 2011, 11:42                       dxp QUOTE Потрудитесь книжки почитать
http://www.progr... Dec 22 2011, 16:19                        Прохожий Цитата(dxp @ Dec 22 2011, 20:19) ....
ПМС... Dec 22 2011, 17:53                         dxp QUOTE (Прохожий @ Dec 23 2011, 00:53) ПМС... Dec 23 2011, 05:55                          Прохожий Цитата(dxp @ Dec 23 2011, 09:55) Это вряд... Dec 23 2011, 18:42                           dxp QUOTE (Прохожий @ Dec 24 2011, 01:42) Вот... Dec 24 2011, 06:44                            sasamy Цитата(dxp @ Dec 24 2011, 10:44) Если же ... Dec 24 2011, 08:06                            Прохожий Цитата(dxp @ Dec 24 2011, 10:44) Речь идё... Dec 24 2011, 17:55                             dxp QUOTE (Прохожий @ Dec 25 2011, 00:55) Опя... Dec 25 2011, 04:58               haker_fox QUOTE (sasamy @ Dec 21 2011, 19:35) Абсол... Dec 21 2011, 11:52             XVR Цитата(sasamy @ Dec 21 2011, 12:40) Кстат... Dec 21 2011, 11:10              kolobok0 Предлагаю свернуть тему. А то НГ на носу. И страни... Dec 21 2011, 11:42           haker_fox QUOTE (sasamy @ Dec 21 2011, 16:01) http:... Dec 21 2011, 09:12           dxp QUOTE (sasamy @ Dec 21 2011, 15:01) Если ... Dec 21 2011, 10:07           ReAl Цитата(sasamy @ Dec 21 2011, 10:01) По су... Dec 21 2011, 12:12            dxp QUOTE (ReAl @ Dec 21 2011, 19:12) И тогда... Dec 21 2011, 13:23             Genadi Zawidowski Цитата(dxp @ Dec 21 2011, 17:23) Это был ... Dec 22 2011, 12:50            sasamy Цитата(ReAl @ Dec 21 2011, 16:12) А дальш... Dec 21 2011, 17:10       Сергей Борщ QUOTE (sasamy @ Dec 20 2011, 11:50) Приме... Dec 20 2011, 10:59        ViKo Цитата(Сергей Борщ @ Dec 20 2011, 13:59) ... Dec 20 2011, 11:13       dxp QUOTE (sasamy @ Dec 20 2011, 16:50) Это о... Dec 20 2011, 11:14  Danis Цитата(_Артём_ @ Dec 14 2011, 12:35) В см... Dec 16 2011, 09:28 Iptash С++ я бы сказал совершенно другой, отличный от С я... Dec 18 2011, 13:24 dxp QUOTE (Iptash @ Dec 18 2011, 20:24) С++ я... Dec 18 2011, 16:58  Iptash Цитата(dxp @ Dec 18 2011, 20:58) ... Наве... Dec 18 2011, 17:12 haker_fox Господа, может быть не будем заниматься поддержани... Dec 20 2011, 09:58 ViKo Я не знаю языка C++, хотя и прочитал Г. Шилдта до ... Dec 20 2011, 10:42 Сергей Борщ QUOTE (ViKo @ Dec 20 2011, 13:13) А я вот... Dec 20 2011, 12:43 ViKo Цитата(Сергей Борщ @ Dec 20 2011, 15:43) ... Dec 20 2011, 12:50 haker_fox QUOTE (Сергей Борщ @ Dec 20 2011, 20:43) ... Dec 20 2011, 13:54 Flexz Цитата(sasamy @ Dec 21 2011, 12:01) По су... Dec 21 2011, 08:34 Flexz Видимо, он имел ввиду единый, общий для разных ком... Dec 21 2011, 09:36 ReAl 1) На ассемблере+фортране в своё время было написа... Dec 21 2011, 19:38 toweroff sasamy,
вот у меня в соседней ветке конкретный во... Dec 21 2011, 20:11      neiver Цитата(sasamy @ Dec 23 2011, 15:10) А теп... Dec 23 2011, 11:26          XVR Цитата(sasamy @ Dec 23 2011, 22:34) Там о... Dec 24 2011, 16:52           sasamy Цитата(XVR @ Dec 24 2011, 20:52) проявляя... Dec 24 2011, 17:06            XVR Цитата(sasamy @ Dec 24 2011, 21:06) Это в... Dec 24 2011, 17:12           sasamy Цитата(XVR @ Dec 24 2011, 20:52) Не надо,... Dec 24 2011, 18:17            neiver Цитата(sasamy @ Dec 24 2011, 22:17) А о ч... Dec 24 2011, 20:31             sasamy Цитата(neiver @ Dec 25 2011, 00:31) Очень... Dec 24 2011, 21:20              neiver Цитата(sasamy @ Dec 25 2011, 01:20) Для в... Dec 25 2011, 07:43 ViKo А за сайтик http://www.programmer-lib.ru - спасибо... Dec 22 2011, 17:11 Сергей Борщ QUOTE (sasamy @ Dec 22 2011, 13:42) Потру... Dec 23 2011, 08:55 Flexz Цитата(sasamy @ Dec 23 2011, 22:34) ...мо... Dec 24 2011, 11:32 sasamy Цитата(Flexz @ Dec 24 2011, 15:32) Осталь... Dec 24 2011, 12:09 Flexz Цитата(sasamy @ Dec 24 2011, 16:09) Ищите... Dec 24 2011, 15:12
2 страниц
1 2 >
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|