Also, what about not pointers but smart pointers, I guess not only std::shared_ptr but std::unique_ptr also can be the case, so there will not be maintenance risks