2009-07-24 75 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 
相關問題