>> Anyone who is able to check their pointers before use, is equally able
>> to assign 0 to deleted pointers.
>
> {
> T* p = new T;
> Dll_fn_takes_by_Copy (p);
> delete p;
> }
>
> Show me how.
>
>
Now you are being silly.
😂 ...no seriously...it is a honest question.
How can check if Dll_fn_takes_by_Copy assigned nullptr to the copy of p?
>
> But library implemented and low level will definitely use raw
> pointers....just show me how many std::vector implementation uses smart
> pointers for its internal data pointer.
>
How standard library implementations are written is totally irrelevant.
Very relevant...stl implementation are the goto to anyone who wants to crank up his level of C++ expertise. Most students i see, copy the standard implementation, even if they have the tools to do better.