I've been coding primarily in C# for a couple of years now.  Up until recently it had been almost a year since I coded any real C++ code.  Now that I am using MC++ at home I am starting to get back in the habbit and last night I rediscovered macros (you'd be amazed at what you forget to use after a year or so).  I've found that they are very useful for repetitive argument validation code.  As below

#define EARG_NONNULL(x) \
 if ( nullptr == x ) throw gcnew ArgumentNullException(L#x) 

I realize that macros can be dangerouns when you abuse them.  But people abuse them for a reason ... they're useful. 

Some of my friends have told me that Code Snippets in Whidbey are another easy solution to the repetitve nature of coding items like argument validation.  I am going to look at those and I'll add a blog entry about them as well in the next few days.