Custom Comment-Out Macro

I think that sometimes commenting source code can be cause of great mess if we don't write WHY we are commenting it and, for istance, whether it is a temporary action or it is supposed to be definitive. This is particularly true when you work in team and you dare to hope to understand what is happening around you (no hopes! ;-) ).

For this reason it can be useful to insert comments like this

// Commented by Ilic On 31/7/00   CString Message;
// Commented by Ilic On 31/7/00   Message.Format(_T("Useless message"));
or this
// Moved to AnotherLibray	MyClass *Ptr;
// Moved to AnotherLibray	Ptr->SolveAllMyProblems();
This is possible with the included Macro. Comment is divided in three parts:
  1. the CommentType (//, ', # and so on), which was already beautifully mastered by Adam Solesby.
  2. The Comment itself, i.e. the sentence you want to be written near your commented code.
  3. The comment delimiter, which separates your sentence from the code. It is set by default as a vTab, but you can change it to whatever you want,obtaining e.g.
    // Moved to AnotherLibray --> MyClass *Ptr;
    // Moved to AnotherLibray --> Ptr->SolveAllMyProblems();
    
The ChangeCustomComment() macro allows you to change the sentence you want to put in next comment, whereas InsertCustomComment() is simply the extension of Adam Solesby's macro. You can change your comments as many times as you want, and you should always be able to Uncomment code, no matter whether the sentence in the comment you want to delete is the same of the "active" one or not. On the countrary you shouldn't change the comment delimiter once you have chosen one, or the macro want be able to recognize comments anymore (nobody's perfect...)

Downloads

Download source - 3 Kb


Comments

  • There are no comments yet. Be the first to comment!

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Learn How A Global Entertainment Company Saw a 448% ROI Every business today uses software to manage systems, deliver products, and empower employees to do their jobs. But software inevitably breaks, and when it does, businesses lose money -- in the form of dissatisfied customers, missed SLAs or lost productivity. PagerDuty, an operations performance platform, solves this problem by helping operations engineers and developers more effectively manage and resolve incidents across a company's global operations. …

  • On-demand Event Event Date: December 18, 2014 The Internet of Things (IoT) incorporates physical devices into business processes using predictive analytics. While it relies heavily on existing Internet technologies, it differs by including physical devices, specialized protocols, physical analytics, and a unique partner network. To capture the real business value of IoT, the industry must move beyond customized projects to general patterns and platforms. Check out this webcast and join industry experts as …

Most Popular Programming Stories

More for Developers

RSS Feeds