Как стать автором
Обновить
19
0

Пользователь

Отправить сообщение
Не спорю, тут дело скорее во вяких бюрократических кунштюках
Мне кажется, не стоит себя так ограничивать. Даже с точки зрения DIY
Спасибо! Я бы и рад, но пока Keil ускользает от меня.
Реализации есть, я видел несколько своими глазами. Но у всех есть фатальный недостаток. В таких проектах бывает очень сложно привлекать сторонние библиотеки. Телодвижений придется исполнить настолько много, что поневоле приходишь к мысли, что уж лучше свой моноцикл.
Да, жить в кредит совсем грустно, наверное.
Можно отказаться от исключений, но это не значит, что прошивка никогда не упадет. Но мы ни разу не видели сбоя в рантайме по причине проскочившего шального исключения. Мы соблюдали технику безопасности. Аналогично с умным указателем: разница в размере дополнительной информации образуется из-за разницы в реализации под конкретный компилятор. Эмпирический подбор состоял в том, что прошивка не собиралась, если памяти было мало. Хоть китайское электричество до конца не изучено, но тут от фазы луны мало что зависело. (upd: в настоящее время все shared_ptr удалены)
Мы никогда не полагаемся на удачу или UB.
Согласен, только проблемы могут вам оставить в наследство, их даже не придется самолично организовывать. Ну, и ничего героического в их решении уже нет, к сожалению.
Я уже писал, что тэги не нужны, действительно. Хорошо, исправлю прямо в статье.
Признаю, здесь нарушил KISS, надо было взять что-то посложнее в качестве иллюстрации. Вам спасибо за комментарии.
Да, и еще скажу, в попытках оправдаться, то мне показалась заманчивой именно сама возможность проверки наличия функции в классе.
Спасибо, именно такого конструктивного комментария я ждал, а не просто минусов.

На самом деле, ошибка компиляции будет при «неопределенном» initializator из-за вызова do_log, но ввы правы, лучше было бы, наверное оставить так
template<class LogType>
class initializator;


Про переопределение мысль интересная, но опять же каждый раз это наследование должно прописываться при определении инициализатора.

А вот отказаться от initializator (извините за название, не я придумывал) — это да, теги здесь излишни.
Merci, что обратили внимание.

На самом деле, я убрал и оператор копирования, поскольку подумал, что если спрятать instance, то не должно быть ситуаций, когда им попытаются воспользоваться, ровно как и конструктором копирования.
Хотели раньше об этой штуке написать, но потом забылось, да и от Qt отошли. Собственно, тут тоже есть определенный протокол, и кое-какие ограничения, но нам нужен был скромный удаленный заместитель.
Ну, все достаточно просто решается добавлением удаления в деструктор qDeleteAll(handler.values())
с удовольствием, если подскажите как это сделать. пока тут не очень разобрался

Информация

В рейтинге
Не участвует
Откуда
Россия
Работает в
Зарегистрирован
Активность