The C++ Source has just published a new article of mine, "Enforcing Code Feature
Requirements in C++." You'll find it at
http://www.artima.com/cppsource/codefeatures.html . Here's the summary from the
top of the article:
>Functions often depend on particular behavioral characteristics
>(“features”) of code they invoke. For example, thread-safe code must
>invoke only thread-safe code if it is to remain thread-safe, and
>exception-safe code must invoke only exception-safe code. This paper
>describes a technique that enables the specification of arbitrary
>combinations of user-defined code features on a per-function basis and
>that detects violations of feature constraints during compilation. The
>technique applies to member functions (both nonvirtual and virtual),
>non-member functions, and function templates; operators are excluded.
The article has a definite "researchy" feel to it (you may sense that from the
summary above), and in fact I originally wrote it for publication in the
academic community. Still, I think the ideas and techniques it describes are
relevant to many problems C++ developers regularly confront.
The research behind the article took over a year (off and on), and the article
itself was extensively modified twice (essentially rewritten) before it got into
its current form, so it represents a lot of work on my part. I'm pleased with
the way things turned out. I hope you find it interesting.