Does boost have an abstract factory?  I’m reading through Alexandrescu’s “Modern C++ Design” and finding the idea neat, and I’m surprised to not find an equivalent in boost.   Or alternately, is there another preferred solution?