Welcome to Software Development on Codidact!
Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.
Post History
Well, you still need (placement) new for the implementation of the smart pointers themselves. You would also use it (or malloc) to implement custom allocators, for example: https://www.boost.org/d...
Answer
#1: Initial revision
Well, you still need (placement) `new` for the implementation of the smart pointers themselves. You would also use it (or malloc) to implement custom allocators, for example: https://www.boost.org/doc/libs/1_78_0/libs/pool/doc/html/boost/default_user_allocator_new_delete.html. One unusual scenario is the following: Just recently I was involved in the implementation of a component that had a special requirement, namely that some of its objects should have "infinite" life time. These objects should therefore also not be destroyed at the end of `main`, but exist up to the point of actual process termination. Therefore, what was needed there was a `new` without `delete`. Maybe others have more examples - at least I can confirm your view that the use of `new` has almost completely disappeared from source code.