2009-07-24 74 views

回答

13

使用#pragma message例如

#define MESSAGE(t) message(__FILE__ "(" STRINGXXX(__LINE__) ") : " t) 
#define STRINGXXX(x) STRINGYYY(x) 
#define STRINGYYY(x) #x 

那么,如果你把

#pragma MESSAGE("TODO: testing") 

它会显示为一个可点击的消息,就像正常的编译器消息

+0

现在这是一个巧妙的方法! – xtofl 2009-07-24 11:52:11

6

您要包括这样的事情在你的源代码:

#pragma message("Hello World") 
2

您可以使用#pragma message在源文件中的一个输出字符串时该文件是预处理的。另外,执行自定义,构建前或构建后步骤时,“描述”字段将回显到标准输出。

1

正如Timo Geusch所说:#pragma message指令就是用于此目的的。

由于模板元编程的异国情调的副作用,它也可以使用编译器作为一个计算器:)

template<int i> struct Message; 

template<int i> struct Fac { 
    static const int v = i * Fac< i-1 >::v; 
}; 

template<> struct Fac<1> { static const int v = 1; }; 

Message< Fac<10>::v > m; 

将导致输出消息

Line 10: error: aggregate 'Message<3628800> m' has incomplete type and cannot be defined 
相关问题