A clone factory may be used to create objects (e.g. message objects) of a certain type depending on an ID. A list of clones is stored inside the factory.

clone factory

The observer pattern lets you register callback functions which will be called (notified) when the subject changes. In C++11 functors may be used.


Create custom debug output into a log file. Use the logger like a stream and adjust the output level of your logging. Scoped logging lets you follow entry and exit of functions.


A singleton controls the number of objects which may be created from this class. A singleton object is global and accessible from everywhere in your code.


C++11 has a beautiful thread class. In C++03 you can either use boost, or create your own wrapper for the thread calls of your OS. This example shows how it is done.