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

    Во первых - этот срачь был не в политике, а в тематике. Во вторых, почитай что пишет это чудо. Он или еще из подросткового периода не вышел, или у него тяжелая депрессия, от чего он видимо набухался и пришел спустить пар на мне, со своим подростковым сленгом.

    Добавлено
    И какой смысл этой темы тут? Если две последние портянки ты уже удалил. По новой что ли их писать? Нет уж увольте.
    !
    Киля, я не буду заниматься доказательством правильности своего модерирования! И тебе советую не нарушать Правила п.1.6. Если тебя что-то не устраивает - пиши админам форума. Они отклоненные темы видят, и смогут вынести свой вердикт в твою пользу - если я не прав.
    Сообщение отредактировано: JoeUser -
        Цитата JoeUser @
        И простое бы предупреждение спасло - если бы была привычка ... смотреть логи сборки.

        Кхе-кхе. Всегда смотреть логи сборки это напряжно.
        У меня есть привычка, настраивать warning as error.
        Компилятор споткнувшись, возвращает код ошибки.
        А вот если при сборке возникла ошибка, то тогда у меня выскакивает отчёт.
        В прочих случаях нет смысла его читать. Разве что для отладки самого сборочного процесса.
        Человек должен делать то, что может сделать только он, всё остальное должна делать машина!
          Цитата Eric-S @
          Кхе-кхе. Всегда смотреть логи сборки это напряжно.

          Возможно я неточно выразился. Для разработки под С/С++ я использую QtCreator. У него для логирования сборки есть два окошка - сырых логов, и логов предупреждений и ошибок. Естественно, я сперва смотрю второе.

          Такие предупреждения, как неиспользуемые переменные - я обрабатываю чаще всего просто обычным комментированием переменных, хотя можно бы и прагмой, но это не всегда красивше.
          Мои программные ништякиhttp://majestio.info
            Цитата JoeUser @
            Возможно я неточно выразился. Для разработки под С/С++ я использую QtCreator. У него для логирования сборки есть два окошка - сырых логов, и логов предупреждений и ошибок.

            Ясно. У меня самопальная сборка. Окошко с ошибками открывается, только если при сборке были ошибки.

            Цитата JoeUser @
            Такие предупреждения, как неиспользуемые переменные - я обрабатываю чаще всего просто обычным комментированием переменных

            В смысле их удалением из компиляции?
            // int not_used_var;
            Я в таких случаях просто удаляю. Чтоб не плодить мусор. Если будет нужно вернуть, то svn или git мне поможет.

            Цитата JoeUser @
            можно бы и прагмой, но это не всегда красивше.

            В тех случаях, когда ни то ни сё, переменная нужна, но временно не используется, то использую макрос.
            Раньше там был просто:
            #define UNUSED( varname ) ((void) varname)

            Потом сделал шаблонную заглушку:
            template< typename T > void unused( const T& ) {}

            Сейчас в стандарте предложили атрибут, но я как-то даже не пробовал.
            Сообщение отредактировано: Eric-S -
            Человек должен делать то, что может сделать только он, всё остальное должна делать машина!
              Скрытый текст
              Цитата Eric-S @

              В тех случаях, когда ни то ни сё, переменная нужна, но временно не используется, то использую макрос.

              Зря ты это сказал. Сейчас Киля срач начнёт и на эту тему :crazy:
              Сообщение отредактировано: JoeUser -
              Подпись была включена в связи с окончанием срока наказания
                  Скрытый текст
                  Ну я на всякий случай - вдруг не заметишь такой повод, чтобы посраться, а тут я напомнил :yes:
                  Сообщение отредактировано: JoeUser -
                  Подпись была включена в связи с окончанием срока наказания
                    Цитата OpenGL @
                    Зря ты это сказал. Сейчас Киля срач начнёт и на эту тему :crazy:

                    Мне как-то не интересно читать срач.
                    Я знаю, что поступаю не очень хорошо, заглушая предупреждения, вместо исправления.
                    Но в некоторых случаях, это наиболее приемлемый вариант. А я перебрал множество разных.
                    Если кто-то может предложить более удобное, правильное и красивое решение, то с радостью откажусь от старого варианта.
                    Человек должен делать то, что может сделать только он, всё остальное должна делать машина!
                      Цитата Eric-S @
                      У меня есть привычка, настраивать warning as error.
                      Такая же фигня. Ненавижу непофикшеные предупреждения.
                      Скрытый текст
                      У Кили сейчас идеальная аватарка - полностью подходит под его поведение на этом форуме. :lol:
                      error: 'long long long' is too long for GCC
                        Цитата Eric-S @
                        В смысле их удалением из компиляции?
                        // int not_used_var;

                        Да, но я дополнительно использую еще QtCreator TODO Plugin, и помечаю ее как //NOTE , если точно знаю, что она скоро понадобится. Такие случаи очень редкие, но бывают.

                        А еще:

                        ExpandedWrap disabled
                          #include <iostream>
                           
                          class Warning {
                            public:
                              virtual void Log(const std::string &Msg) const {
                                std::cout << "Warning: " << Msg << std::endl;        
                              }        
                          };
                           
                          class Fatal: Warning {
                            public:    
                              void Log(const std::string & /** Msg **/) const override { // <--------- Бывает и такое
                                std::cout << "Abort." << std::endl;        
                              }        
                          };
                           
                           
                          int main() {
                            Fatal F;
                            F.Log("");
                            return 0;
                          }
                        Мои программные ништякиhttp://majestio.info
                          Цитата JoeUser @
                          А еще

                          Не понял, как это использовать на практике? Можно пример?

                          Добавлено
                          Цитата JoeUser @
                          Да, но я дополнительно использую еще QtCreator TODO Plugin, и помечаю ее как //NOTE , если точно знаю, что она скоро понадобится.

                          Ясно. Если что, я помещаю
                          /// @todo обработать переменную
                          А doxygen это всё собирает в единый список todo list.
                          Впрочем, это не слишком удобно и какая-нибудь прога не помешала бы.
                          Человек должен делать то, что может сделать только он, всё остальное должна делать машина!
                              Цитата Eric-S @
                              Не понял, как это использовать на практике? Можно пример?

                              Ну вот синтетический пример я и привел. Его конечно же можно было бы переписать с применением паттерна "Адаптер". Но для разовых решений, а тем более мелких - мой пример пишется быстрее и читается несложно.
                              Мои программные ништякиhttp://majestio.info
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) 1 [2] 3  все


                                Рейтинг@Mail.ru
                                [ Script Execution time: 0,1416 ]   [ 17 queries used ]   [ Generated: 21.07.18, 15:28 GMT ]