Название: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: navrocky от Сентябрь 08, 2010, 15:54 Бывает удобно, не дописав какой-то метод, пометить его как-то чтобы не забыть... Или когда проект пишет много человек, бывает удобно поставить сообщение в чужом коде в виде ворнинга, типа такого "Вася, я тут понаписал у тебя, проверь"...
К сожалению нет стандартного способа генерить такие ворнинги из кода, у каждого компилятора это делается по своему. В Qt и Boost также нет такой функциональности. Так что я сделал свой вариант. Пример использования: Код
Исходник: Код
Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: Авварон от Сентябрь 08, 2010, 20:03 эм а как же #warning ? его что, в msvc нету?
Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: Denjs от Сентябрь 08, 2010, 23:00 эээээ....
Код: qDebug() << message; Есть ещё Q_ASSERT(), Q_ASSERT_X(), Q_CHECK_PTR() ... неа? или вы говорите про кучку сообщений на этапе сборки? аналог списка TODO?! а они не потеряются в куче сообщений которые вываливает компилятор? расскажите подробнее сценарий применения - после того, как я внес в исходник Код: WARNING( Blah-blah ololo ) Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: navrocky от Сентябрь 08, 2010, 23:29 Цитировать эээээ.... неа, это к ворнингам компилятора отношения не имеет.Код: qDebug() << message; Есть ещё Q_ASSERT(), Q_ASSERT_X(), Q_CHECK_PTR() ... неа? Цитировать или вы говорите про кучку сообщений на этапе сборки? аналог списка TODO?! точно! как я и писал выше, может использоваться в качестве TODO для себя или для других.Цитировать а они не потеряются в куче сообщений которые вываливает компилятор? нормальная среда подсвечивает ворнинги, так что это не проблема.Цитировать эм а как же #warning ? его что, в msvc нету? http://stackoverflow.com/questions/1046821/why-does-not-visual-studio-display-warnings-generated-by-the-warning-directivehttp://support.microsoft.com/kb/155196 Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: Denjs от Сентябрь 08, 2010, 23:43 И ещё мне кажется ваш код заточен чисто под MS VS ?
это так? на mingw и gcc он не пойдет? "#pragma once" - разве вместо этого в QT не конструкции "#ifndef / #define / #endif" используются? Цитировать Цитировать или вы говорите про кучку сообщений на этапе сборки? аналог списка TODO?! точно! как я и писал выше, может использоваться в качестве TODO для себя или для других.в отличии от run-time сообщений qWarning() qDebug() и иже с ними? гм.. ок... (вы уж извините, но я люблю точно и 3 раза убедиться)))) Цитировать Цитировать а они не потеряются в куче сообщений которые вываливает компилятор? нормальная среда подсвечивает ворнинги, так что это не проблема.Код: //TODO: my todo message .. но не суть) это я так.. к слову... Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: navrocky от Сентябрь 08, 2010, 23:48 И ещё мне кажется ваш код заточен чисто под MS VS ? gcc отлично отрабатывает #pragma once, моя основная среда - это как раз gcc.это так? на mingw и gcc он не пойдет? "#pragma once" - разве вместо этого в QT не конструкции "#ifndef / #define / #endif" используются? А #ifndef / #define / #endif это, имхо, геморрой.. Хотя да, согласен что это не стандарт и, возможно, найдется такой компилятор, который это не сожрет. Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: navrocky от Сентябрь 09, 2010, 00:00 Цитировать нормальная среда и списки TODO поодерживает, и в идеале - достаточно написать в коде вещь типа Ваши бы слова да разрабам MSVS в уши ) Отменное гов..eцо этот MSVS я б сказал...Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: Blackwanderer от Сентябрь 09, 2010, 07:33 Цитировать нормальная среда и списки TODO поодерживает, и в идеале - достаточно написать в коде вещь типа Ваши бы слова да разрабам MSVS в уши ) Отменное гов..eцо этот MSVS я б сказал...Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: Sahab от Сентябрь 09, 2010, 08:50 Код: Ваши бы слова да разрабам MSVS в уши ) Отменное гов..eцо этот MSVS я б сказал... vim/Emacs?)))) Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: navrocky от Сентябрь 09, 2010, 09:59 Код: Ваши бы слова да разрабам MSVS в уши ) Отменное гов..eцо этот MSVS я б сказал... vim/Emacs?)))) Название: Re: Кроссплатформенные пользовательские warning (gc Отправлено: SASA от Сентябрь 09, 2010, 14:22 Не по теме.
Отменное гов..eцо этот MSVS я б сказал... Так богохульствовать... был бы век 15, давно бы на костре изжарился, неверный!!! ;DПо теме. Вещь полезная. А Вы уверены, что Код: #define __PRAGMA(str) _Pragma(#str) Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: Sahab от Сентябрь 09, 2010, 15:26 Код: Да что угодно: kdevelop, netbeans, qtcreator... Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: Sahab от Сентябрь 09, 2010, 15:29 kdevelop под венду жесть,
netbeans тормозной(немного :D) + жаба..., qtcreator уже поинтересней... развивается конечно побыстрому, много новых фич... но если быть честным... не дотягивает до студии Название: Re: Кроссплатформенные пользовательские warning (gc Отправлено: navrocky от Сентябрь 09, 2010, 16:10 Цитировать А Вы уверены, что Код: #define __PRAGMA(str) _Pragma(#str) _Pragma описана в стандарте C++, однако мелкомягкие как всегда положили на стандарт и изобрели свою __pragma =) Цитировать kdevelop под венду жесть, Я использую netbeans под линуксом, я доволен, все что нужно в нем есть и работает отлично, а тормоза на моем AthlonX4 мне не заметны.netbeans тормозной(немного ) + жаба..., qtcreator уже поинтересней... развивается конечно побыстрому, много новых фич... но если быть честным... не дотягивает до студии kdevelop под линуксом очень даже ничего, особенно в плане разработки под Qt, дополняет имена сигналов, реализует методы и тд. и тп., работает при этом очень шустро. qtcreator простенькая детская среда, но многое в ней есть, за что - зачот :) А студия (без дополнительных ассистентов) это УГ, да плюс еще компилятор с кучей несоотвествий со стандартом, ну и компилит в пи раз медленнее чем gcc под линуксом на одной и той же машине. Единственный плюс студии - это нормально работающий отладчик. Название: Re: Кроссплатформенные пользовательские warning (gcc, msvs) Отправлено: Авварон от Сентябрь 09, 2010, 16:23 вы забыли одну маленькую вещь - msvc генерит в 500раз лучший код, чем mingw (по размеру и скорости), потому и работает медленней.
Ну по крайней мере в он не делает таких конструкций (в отличие от мингвы): Код: CPU Disasm Код: CPU Disasm |