关于C++ share_ptr构造函数的问题

我想问一下,为什么第二句语句这么写是不可以的, 如果想要自己实现这样的类,来阻止=的构造函数该怎么做

    shared_ptr<int> pint(new int(5));
    shared_ptr<int> pins =  new int(5);

阻止new的话,operator new( size_t t) =delete; 阻止=的话,operator =( )=delete;

 http://zh.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr
没有int*,所以不可以。第一行可以是存在隐式转换

现在已经了解到了, 其实是explicit的问题,

template< class Y > 
explicit shared_ptr( Y* ptr );

下面的语句执行的时候,其实是相当于share_ptr pins = share_ptr(new int(5)), 由于构造函数是explicit的,所以无法执行隐式转化。