Factory pattern with boost::factory
Factory pattern with boost::factory