На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! В разделе обсуждаются следующие темы:
1) Процесс разработки программного обеспечения.
2) Определение требований к программному обеспечению.
3) Составные части и процесс проектирования (см. Шаблоны проектирования).
4) Документирование программного продукта(проекта).
5) Руководство разработкой программного обеспечения.
6) Проектирование пользовательского интерфейса.
7) Контроль версий проекта (см. Управление версиями в Subversion, Стратегии использования svn).
Модераторы: ElcnU
Страницы: (3) 1 2 [3]  все  ( Перейти к последнему сообщению )  
> Safety code , warning as error
    Цитата JoeUser @
    вот синтетический пример я и привел.

    Такое ощущение, что мы разговариваем о разном.
    Для чего эти классы Warning, Fatal? Чтобы вывести отладочное сообщение?

    А не проще ли тогда:
    ExpandedWrap disabled
      #if defined(_DEBUG)
       
      inline void report_warning( const string& message )
      {
      clog << "Warning: " << message << endl;
      }
       
      #else // _DEBUG
       
      inline void report_warning( const string& )
      {
      }
       
      #endif // _DEBUG
       
       
      int main()
      {
      report_warning( "" );
      return 0;
      }


    Вообще я обычно юзаю функции и макросы из microsoft crt. Там можно перенаправить вывод или обработать его разными способами. Но это если хочется извращаться.
    А если нужна переносимость или простота, то вариант с inline функциями удовлетворяет потребности.

    И мне бы хотелось понять, в чём плюшка, в чём профит от использования классов, да ещё с виртуализацией?
      Цитата Eric-S @
      И мне бы хотелось понять, в чём плюшка, в чём профит от использования классов, да ещё с виртуализацией?

      Не не не. Речь не о использовании классов же шла. Речь о подавлении сообщении о неиспользуемых параметрах.

      Если же речь именно про классы. Ну был у меня некогда проект на Qt5, в котором открывалась куча вложенных связанных диалогов. Задача была организовать корректную реакцию всех элементов всех диалогов на какое-то изменение. При этом часть диалогов имела идентичное отображение UI, но работала с разными моделями данных. Первое что я сделал, сделал классы-предки типовых UI, а от них наследовал конкретные реализации. В типовом классе-предке реализовал абстрактные методы GetСmd и PostCmd с параметрами (слоты). Так вот. В части реализаций данных методов изредка некоторые параметры не использовалась. Пришлось "научиться" подавлять вот таким вот образом сообщения о неиспользуемых параметрах с помощью /** **/

      Добавлено
      Цитата Eric-S @
      Вообще я обычно юзаю функции и макросы из microsoft crt

      Увы, я стараюсь не привязываться к платформе.
        Цитата JoeUser @
        Не не не. Речь не о использовании классов же шла. Речь о подавлении сообщении о неиспользуемых параметрах.

        Тфу! Точно. Теперь понял куда смотреть. Спасибо за пояснение. Название параметра осталось у потомка, но оно теперь закоментировано.
        Да, действительно, бывает такое. У меня в проекте тоже есть такие места.
        Но я использую макрос UNUSED.
        Если параметр удалить или закоментировать, то doxygen кидает warning, что у реализации метода, название параметра отличается от объявленого.

        Добавлено
        Цитата JoeUser @
        Увы, я стараюсь не привязываться к платформе.

        Спорное утверждение. Разрабатывать в qt creator и не привязываться к платформе?
        Теперь вы привязаны к платформе qt.
        Это конечно моё личное мнение, но она далеко не фонтан радости.
        Все проги написанные для десктопов с пользовательским интерфейсом на qt у меня вызывают много мата.
        Я их даже перестал устанавливать, как только читаю в описании упоминание про qt.
          Скрытый текст
          На счет Qt меня устраивает многое, хотя исполняемые файлы - жЫрные до безумия. Это печаль.

          Цитата JoeUser @
          Разрабатывать в qt creator и не привязываться к платформе?

          А вот это можно вполне - там есть типы проектов "Без использования Qt". Линкуй чего хочешь. Я пробовал библиотеку Nana - вполне себе даже.
                Цитата Eric-S @
                Если параметр удалить или закоментировать, то doxygen кидает warning, что у реализации метода, название параметра отличается от объявленого.

                Но ведь с учётом возможности перегрузки методов, это предупреждение несколько странно. Я к тому, что перегрузка — штатная и часто используемая фича в языках, где она есть, т.е. таких предупреждений может выдаться крайне много и они будут захламлять действительно важные предупреждения, не?
                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                0 пользователей:
                Страницы: (3) 1 2 [3]  все


                Рейтинг@Mail.ru
                [ Script execution time: 0,0362 ]   [ 15 queries used ]   [ Generated: 19.03.24, 08:33 GMT ]