Not only straightforward, but also not novel. For example such lists have been described (with source code) in this textbook (published in 1994): Taming C++: Pattern Classes and Persistence for Large Projects by Jiri Soukup. Here's a picture taken from this book illustrating the concept: http://community.moertel.com/~thor/blog/pix-20061201/soukup-...