А что с ними не так?
а их нет
Почему язык программирования должен реализовывать семантику паттерна проектирования в ущерб гибкости?
std::function
Я про вот такие
class NonThreadSafeObject { private: std::mutex fMtx; SomeInnerDataForManipulations fData{}; public: // public methods as an interface of a class };
мне скорее именно декорация нужна, а не каррирование
Я думаю это оттого, что разные системы типов, например, у typescript при изменении класса (добавлении поля, например), тип остается тем же, так как там типы основаны на совпадении полей , а в C++ другая система типов - формальная. Я не настолько специалист, но думаю, тут фундаментальное различие, поэтому декораторов и нет, как и миксинов. Но их можно эмулировать! Можно сделать наследование и поменять что тебе надо .
ну можна наследоваться и выполнять весь код в лямбде, которую передавать в метод базового класа, но получается, что кода меньше не станет а нагрузки будет больше
Ну кстати, тебе правильно сказали насчет std::function. Держишь это поле в классе и суешь что тебе надо туда (код, который ты хочешь дополнительно вызывать). Всегда можно подменить код. Ты не меняешь класс, но меняешь код метода.
https://t.me/supapro/1322288
Обсуждают сегодня