This is my generic programming page where I will be presenting some generic utilities which can come of use in any application. These utilities use template metaprogramming and generic programming principles extensively, so it can be a good source of learning as well.
Boost's provides many helper libraries for generic programming. They is a section for generic programming there: Boost's generic programming page. As you know generic programming and template metaprogramming can overlap in many places, so don't be surprised if the same Boost library is shown in both sections.
The sources here are links to the open source project swissknifelib that I moderate. There are comments at the needed places, but if you have questions, your comments, suggestions or bug fixes, please post them. If you want to contribute as well, please let me know.
Poolkit
This is a generic resource pool you can use where every you need acquire resources eagerly. This can help when acquiring resources can be a heavy activity. Even otherwise, a resource pool is a good idea because it helps in maintaining locality of reference if you are working with a collection of resources that are acquired at different times. It is heavily parameterized, uses various kinds of overloads, etc so as to be generic. But if there is a condition it does not work for, please suggest and we can grow the utility that way. Boost does have a Boost::Pool library but our implementation is more functional.
Here are the sources: Poolkit sources