На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (6) 1 2 [3] 4 5 ... Последняя » все  ( Перейти к последнему сообщению )  
> Интересная статья
    Цитата Relan @
    Теперь вы оба напишите такой же на Бейсике и на Дельфи. Время пошло. :D

    Ага, а пользовательские функции, кастомные форматы чисел и константы, а также плагины к нему есть?
      Цитата Smike @
      Ага, а пользовательские функции, кастомные форматы чисел и константы, а также плагины к нему есть?

      А ты уже написал калькулятор, который понимает +, -, /, *, и еще докучи стандартных перловых примочек? :) Тогда ты упустил начальные этапы проектирования ;)
        Это к перлу? Если да, то

        Цитата
        Ага, а пользовательские функции,

        Само собой.

        Цитата
        кастомные форматы чисел

        Объектами реализуемо.

        Цитата
        и константы,

        Обижаешь!

        Цитата
        а также плагины к нему есть?

        Что такое "плагины", не знаю, а модули есть и много, см. CPAN.
          Кстати, Python рулит.
          Вот калькулятор на нём: http://gazette.linux.ru.net/lg78/articles/rus-krishnakumar.html
            У-у-у. Народ уже совсем юмора не понимает...
              Relan понимает. Это я для пасквилисто-депхинистов заначил:)
                Lucifer, то, что макросам в С++ не место, с этим я согласен. Но вот в С они вписываются очень и очень органично.
                  Цитата
                  Lucifer, то, что макросам в С++ не место, с этим я согласен. Но вот в С они вписываются очень и очень органично.


                  Макросы - это разговоры в пользу бедных. В сях ничего более цивилизованного нету, вот и приходится. Это видимо такая привычка линуксоидов: "если мы должны с этим работать, то мы должны это полюбить" :)
                  Единственное место, где без макросов было совсем тяжко - это декларация карт сообщений в MFC :).
                  Если ты ещё не веришь в ужос макросов, попробуй, например, с помощью макроса A2W преобразовать в юникод мегабайт 5 текста :). Он упадёт именно потому, что он - макрос :). См. так же тему DrUnkarda в Многошуме о том, как чуваки из MS зажигают :).

                  ..В общем, макросам - не место в жизни современного человека.
                    Цитата BugHunter @
                    ..В общем, макросам - не место в жизни современного человека.
                    Хантер, не соглашусь.
                    Контр-пример:
                    ExpandedWrap disabled
                      #ifdef _DEBUG
                      #define DEBUG_PRINT(x) printf(x)
                      #else
                      #define DEBUG_PRINT(x)
                      #endif

                    Еще контр-пример:
                    Писал я когда-то модуль сбора статистики по алгоритмам на fixed-point. Модуль представлял собой класс, в котором определялись базовые арифметические операции, там же подсчитывалось на какой строке возникали насыщения etc. Без макросов этот вопрос не решается никак. Если будешь запрашивать строку в коде из перегруженного оператора, то он тебе выдаст номер строки в реализации перегруженного оператора. Поэтому приходилось использовать макросы.
                    Т.ч. не следует считать макросы атавизмом. Просто злоупотреблять не надо. Всему свое место.
                    Сообщение отредактировано: Rikkie -
                      Цитата
                      Хантер, не соглашусь.
                      Контр-пример:

                      ну, это не совсем макросы :). точнее - безобидные :)
                      я канешно, имел в виду функции-макросы, а не макроопределения :)

                      ..и тоже ведь можно нарваться :). Поэтому и выносить их желательно только в настройки проекта. Поэтому то что ты с условной компиляцией привёл - это не совсем макросы :).

                      Цитата
                      Если будешь запрашивать строку в коде из перегруженного оператора, то он тебе выдаст номер строки в реализации перегруженного оператора.

                      у, тут ещё вспомнил про макроопределения __FILE__ и __LINE__, тоже полезно бывает.
                      ..опять таки, уже всё что нужно - уже имеется в готовом виде.

                      Но заметь, что для C, что для C++ все приведённые примеры совершенно одинаково полезны ;)

                      А я же имел в виду возражение против фразы " в C они очень к месту ".
                        Цитата BugHunter @
                        Поэтому то что ты с условной компиляцией привёл - это не совсем макросы
                        А что же это?
                        Цитата Rikkie @
                        #define DEBUG_PRINT(x) printf(x)
                        Я же могу еще функциональности добавить, которая только в debug-режиме потребуется.
                        Цитата BugHunter @
                        у, тут ещё вспомнил про макроопределения __FILE__ и __LINE__, тоже полезно бывает.
                        :yes: ты меня понял. :yes:
                        Цитата BugHunter @
                        А я же имел в виду возражение против фразы " в C они очень к месту ".
                        Я видел более категоричное утверждение ;)
                          Цитата BugHunter @
                          См. так же тему DrUnkarda в Многошуме о том, как чуваки из MS зажигают
                          Хм... Как это в многошуме? Она же в моем разделе была? :blink:
                            И в моём тоже. В твоём она была более информативна ;)

                            Добавлено
                            Цитата
                            А что же это?

                            Да как тебе сказать.. если используется условная компиляция, то обычно не принято писать #define прямо в .cpp и .h файлах (ибо чревато), а выносить в настройки проекта (есть там такая чтука - preprocessor definitions), поэтому как то рука не поворачивается назвать это макросом - в настройках проекта они имеют спец свойство - видны во всех файлах проджекта, поэтому более безопасны, что ли :rolleyes:
                              Цитата BugHunter @
                              есть там такая чтука - preprocessor definitions
                              кхммм... я понимаю в этом месте _DEBUG, там ему и место, но размещать DEBUG_PRINT в preprocessor definitions <_< .... мало ли что DEBUG_PRINT делает, может у него вывод какой-то хитро-сложный, может там еще какие-то данные ворочаются. Да может этот дебаг-принт в других ед.тр нафинг не нужен.... к тому же этот дебаг-принт - наиболее простой пример, можно еще сложнее найти.
                                Честно говоря, этот DEBUG_PRINT(x) можно легко заменить на inline функцию. Так что здесь он как бы э.. не к месту.
                                Всё равно этот x будет вычисляться даже в release версии (никуда не деться, вот так вот фигово). Так шо - инлайн функция с пустым лелом в release спасут отца. Да и как то некошерно, лучше что нибудть такое:

                                ExpandedWrap disabled
                                  #ifdef _DEBUG
                                  inline void DebugPrint( const wchar_t* format, ... )
                                  {
                                      va_list args;
                                      va_start(args, format);
                                          //и т.д. - разобрать лист параметров
                                      va_end(args);
                                  }
                                  #else
                                  inline void DebugPrint( const wchar_t* format, ... ) {}
                                  #endif


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


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0425 ]   [ 14 queries used ]   [ Generated: 19.05.24, 23:39 GMT ]