SmartMemoryPool Smart memory pool with custom deleter for polymorphic objects derived from the same base class. Returns out-of-scope objects back to parent pool.