static_assert
От: alexei_  
Дата: 07.04.03 08:19
Оценка:
Хочу сделать static_assert, только что бы вместо error был warning...
Помогите пожалуйста... Может уже кто нибудь делал ?
Re: static_assert
От: Михаил Можаев Россия www.mozhay.chat.ru
Дата: 07.04.03 08:46
Оценка:
Здравствуйте, alexei_, Вы писали:

A>Хочу сделать static_assert, только что бы вместо error был warning...

A>Помогите пожалуйста... Может уже кто нибудь делал ?

Не совсем понял. Что он из себя должен представлять?
Может не static, а compile-time (как у Александреску)?

Надо подумать, хотя переносимого способа нет.
... << RSDN@Home 1.0 beta 6a >>
Re[2]: static_assert
От: alexei_  
Дата: 07.04.03 08:52
Оценка:
Здравствуйте, Михаил Можаев, Вы писали:

ММ>Здравствуйте, alexei_, Вы писали:


A>>Хочу сделать static_assert, только что бы вместо error был warning...

A>>Помогите пожалуйста... Может уже кто нибудь делал ?

ММ>Не совсем понял. Что он из себя должен представлять?

ММ>Может не static, а compile-time (как у Александреску)?

Извините что не совсем понятно выразился....
Да, именно compile-time (как у Александреску),
только чтобы он вызывал не ошибку компиляции а warning
Re[3]: static_assert
От: Колян  
Дата: 07.04.03 09:23
Оценка:
Здравствуйте, alexei_, Вы писали:

A>Да, именно compile-time (как у Александреску),

A>только чтобы он вызывал не ошибку компиляции а warning


Может так подойдет?

///////////////////////// Pragma message helper macro /////////////////////////


/* 
When the compiler sees a line like this:
   #pragma chMSG(Fix this later)

it outputs a line like this:

  c:\CD\CmnHdr.h(82):Fix this later

You can easily jump directly to this line and examine the surrounding code.
*/

#define chSTR2(x)       #x
#define chSTR(x)    chSTR2(x)
#define chMSG(desc) message(__FILE__ "(" chSTR(__LINE__) "):" #desc)


Не warning, конечно... а нужен имеено warning? Для чего?
Re[4]: static_assert
От: alexei_  
Дата: 08.04.03 09:49
Оценка:
Здравствуйте, Колян, Вы писали:

К>Здравствуйте, alexei_, Вы писали:


A>>Да, именно compile-time (как у Александреску),

A>>только чтобы он вызывал не ошибку компиляции а warning

К>

К>Может так подойдет?

К>
К>///////////////////////// Pragma message helper macro /////////////////////////

К>
К>/* 
К>When the compiler sees a line like this:
К>   #pragma chMSG(Fix this later)

К>it outputs a line like this:

К>  c:\CD\CmnHdr.h(82):Fix this later

К>You can easily jump directly to this line and examine the surrounding code.
К>*/

К>#define chSTR2(x)       #x
К>#define chSTR(x)    chSTR2(x)
К>#define chMSG(desc) message(__FILE__ "(" chSTR(__LINE__) "):" #desc)
К>


Да, это прекрасно работает в MSVC, а вот в C++Builder почему то не получается
"easily jump directly to this line and examine the surrounding code."... то есть сообщение нормальное выдается, только вот по клику нельзя перейти к строке где это написано...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.