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