Здравствуйте, rg45, Вы писали:
R>Да пожалуйста (как же ты надоел):
Хотел еще узнать, знаете ли вы как оно внутри работает?
Там примерно такой код:
template <class _Ty>
struct default_delete2;
template <class _Ty, class _Dx = default_delete2<_Ty>>
class unique_ptr2;
template <class _Ty, class _Dx>
class unique_ptr2 {
};
template <class _Ty>
struct default_delete2 { // default deleter for unique_ptr
constexpr default_delete2() noexcept = default;
inline void operator()(_Ty* _Ptr) const noexcept
{
static_assert(0 < sizeof(_Ty), "can't delete an incomplete type");
delete _Ptr;
}
};
Срабатывает static_assert в операторе (). Но как-то не увидел где вызывается этот оператор — скобок, как сделать мин. функционал, который приведет к тому же эффекту?
Потратил кучу времени на GPT, может и сам бы нашел — уже сил нету. Последний пустил по кругу:
https://chat.openai.com/share/f7643cf6-5c78-414d-958d-a5d2b7f88327