提议N4282提倡一种新型的非拥有智能指针称为observer_ptr.它的工作名称是exempt_ptr,它的目的是取代"原始指针".但我不明白它的目的,特别是这个假设的代码是为了实现它的目的:
struct do_nothing
{
template <class T>
void operator ()(T*) { }; // do nothing
};
template <class T>
using non_owning_ptr = unique_ptr<T, do_nothing>;
Run Code Online (Sandbox Code Playgroud)
即使在阅读完文章之后,我也不明白智能指针的目的是什么都不做.它比非拥有shared_ptr或原始指针有什么优势?