Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I use #pragma message() so that the message points to the file(lineno)?

In order to add 'todo' items into my code, I want to put a message in the compiler output.
I would like it to look like this:

c:/temp/main.cpp(104): TODO - add code to implement this 

in order to make use of the Visual Studio build output functionality to navigate to the respective line by double-clicking it.

But the __LINE__ macro seems to expand to an int, which disallows writing

#pragma message( __FILE__ "("__LINE__"): ..." ) 

Would there be another way?

like image 924
xtofl Avatar asked May 11 '11 15:05

xtofl


1 Answers

Here is one that allows you to click on the output pane:

(There are also some other nice tips there)

http://www.highprogrammer.com/alan/windev/visualstudio.html

 // Statements like:  // #pragma message(Reminder "Fix this problem!")  // Which will cause messages like:  // C:\Source\Project\main.cpp(47): Reminder: Fix this problem!  // to show up during compiles. Note that you can NOT use the  // words "error" or "warning" in your reminders, since it will  // make the IDE think it should abort execution. You can double  // click on these messages and jump to the line in question.   #define Stringize( L )     #L   #define MakeString( M, L ) M(L)  #define $Line MakeString( Stringize, __LINE__ )  #define Reminder __FILE__ "(" $Line ") : Reminder: " 

Once defined, use like so:

#pragma message(Reminder "Fix this problem!")  

This will create output like:

C:\Source\Project\main.cpp(47): Reminder: Fix this problem!

like image 138
RedX Avatar answered Oct 03 '22 03:10

RedX