[C++] __LINE__ запихнуть в строчку

bleyman

Собственно, как?
Хочется написать такой макрос Make_Literal, чтобы вот такая фигня нормально работала.
SB_Set(TEXT("Error at line ") Make_Literal(__LINE__) TEXT(" file \"") TEXT(__FILE__) TEXT("\" : ";
__FILE__ она сжирает нормально, а __LINE__ не хочет, потому что кавычег нет. Конечно, можно написать itoa или что-нить такое, но это извращение, потому что после прохода макрогенератора там _уже_ строчка из цифирок, только кавычег не хватает.

Dasar

ya.ru STRINGIZE макрос

bleyman

Спасибо!
Оказывается, нужно делать двойную вложенность, типа:
#define STRINGIFY(x) #x
#define TOSTRING(x) STRINGIFY(x)
#define MY__LINE__ TOSTRING(__LINE__)
Ужоснах =)

okunek

#define PREVED
Оставить комментарий
Имя или ник:
Комментарий: