Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> How to issue a #warning? Как сгенерить предупреждение? 
:(
    Опции темы
marcusmae
Дата 24.2.2008, 23:57 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 5
Всего: 39



Всем привет,

Понадобилось поставить в коде парочку ворнингов, чтобы собственные опасные недоделки всякий раз мозолили глаза. Но #warning нет. А #error есть. Как же поставить ворнинг?


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
jonie
Дата 25.2.2008, 04:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



попробуйте писать например
//TODO 
//HACKME
//REMOVEME
и т.п.)
а в VS.net warning был ...
опция /warning:string
ну и, конечно, #pragma warning

......

так что уточните компилятор, как минимум.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
marcusmae
Дата 25.2.2008, 04:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 5
Всего: 39



Ах, да, компилятор - Visual Studio 2005 C++ без \clr. Ну вот // TODO я, наверно, не буду пользоваться, поскольку есть хотя бы #pragma deprecated. Но отсутствие ворнинга озадачивает. Или я его не нашел..?

Добавлено через 2 минуты и 29 секунд
#pragma warning видел, и он немного другую задачу решает, как я понял.


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
Mayk
Дата 25.2.2008, 05:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Попробуй ещё #warn [не знаю откуда это, но vim его подсвечивает].
А также посмотри в сторону boost.static_warning


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Fazil6
Дата 25.2.2008, 10:15 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Код

#pragma message( "Warning!!! Hellow World!!!!" )

PM MAIL   Вверх
jonie
Дата 25.2.2008, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



Цитата

#pragma warning видел, и он немного другую задачу решает, как я понял.
по мне так как раз мозолит глаза)


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
marcusmae
Дата 25.2.2008, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 5
Всего: 39



Цитата(jonie @  25.2.2008,  14:12 Найти цитируемый пост)
по мне так как раз мозолит глаза


jonie, #pragma warning управляет показом существующих ворнингов, он не предназначен для их производства, в то время как с помощью #error действительно можно выдать свою ошибку.

Цитата(Mayk @  25.2.2008,  05:57 Найти цитируемый пост)
Попробуй ещё #warn

Неа, не берёт

Код

#pragma message( "Warning!!! Hellow World!!!!" )

Да, у меня сейчас так и сделано. Но только это будет в Output бросаться мимо списка сообщений компилятора.

А как работает BOOST_STATIC_WARNING()? У него должен быть bool в аргументе? В документации описан лишь BOOST_STATIC_ASSERT().


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
Mayk
Дата 25.2.2008, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 45
Всего: 134



Цитата(marcusmae @  25.2.2008,  18:55 Найти цитируемый пост)

А как работает BOOST_STATIC_WARNING()? У него должен быть bool в аргументе? В документации описан лишь BOOST_STATIC_ASSERT(). 

Ага. Хотя бы такой:
Код

BOOST_STATIC_WARNING(!"hello world");

правда чо-та он сообщения не очень удобочитаемые по сравнинею с #warning'ом. 
Но если совсем скучно, то можно взять идею static warning за основу и написать что-нить выводящее. Хотя бы так:
Код

#define MSG(Y)\
struct x{\
    void f(){\
        int Y=0;\
        int X = Y/0;\
    }\
};


int main(){
    MSG(HELLO_WORLD);
}19:49:dvl:~$ g++ a.cpp


Цитата

a.cpp: In member function ‘void main()::x::f()’:
a.cpp:11: warning: division by zero in ‘HELLO_WORLD / 0’


Это сообщение отредактировал(а) Mayk - 25.2.2008, 16:51


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
jonie
Дата 25.2.2008, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 15
Всего: 118



признаю, затупил. #pragma warning тут не поможет




--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0547 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.