EBCO в пользовательских удалениях в C ++C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 EBCO в пользовательских удалениях в C ++

Сообщение Anonymous »

Я экспериментировал с минимальным классом уникального_пт -стиля, чтобы увидеть оптимизацию пустого базового класса (EBCO) в действии, когда DeleTer пуст: < /p>
#include

template
class Smart_Ptr : private Deleter
{
public:
explicit Smart_Ptr(T* p =nullptr, Deleter&& deleter=Deleter()) noexcept:
Deleter(std::move(deleter)),
m_data(p)
{}
explicit Smart_Ptr(T* p =nullptr, const Deleter& deleter=Deleter()) noexcept:
Deleter(deleter),
m_data(p)
{}
explicit Smart_Ptr(T* p =nullptr, Deleter& deleter=Deleter()) noexcept:
Deleter(deleter),
m_data(p)
{}

~Smart_Ptr()
{
if (m_data)
Deleter::operator()(m_data);
}
T* m_data;
};

class A {
public:
A() { std::cout

Подробнее здесь: https://stackoverflow.com/questions/795 ... eters-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»