Re[31]: Ошибка, если конструктор определен в h-файле (этюд?)
От: Shmj Ниоткуда  
Дата: 09.07.23 16:09
Оценка:
Здравствуйте, 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
=сначала спроси у GPT=
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.