Visual Studio 2005 and Source Code Annotation

This is so cool, from [MSDN]:

Annotation support

PREfast also supports annotations to improve the accuracy of the code analysis. Annotations provide additional information about pre- and post- conditions on function parameters and return types.

#include </prefast/SourceAnnotations.h>

[SA_Post( MustCheck=SA_Yes )] double* CalcSquareRoot

(

   [SA_Pre( Null=SA_No )] double* source,

   unsigned int size

)

In the above example:

· [SA_Post ( MustCheck=SA_Yes)] requires caller to check the return value of CalcSquareRoot

· [SA_Pre ( Null=SA_No)] requires caller to pass non-null parameter "source" to CalcSquareRoot