/
Tias
/
UIToolkit
Обзор
Документация
Войти
/
Tias
/
UIToolkit
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
include/DIContainer.hpp
36 строк
663 B
Tias
work on MeshBase
28 июн 2025, 12:47
28 июн 2025, 12:47
7d35529
Код
Авторство
О чём код?
#ifndef DI_CONTAINER_HPP_ #define DI_CONTAINER_HPP_ #include <csignal> #include <functional> #include <memory> #include <utility> namespace deps { template <typename ...Args> class DI { std::unique_ptr<DI<Args...>> next_ = {nullptr}; protected: std::function<void(Args...)> handler_; public: DI(std::function<void(Args...)> handler) : handler_(handler) {} DI & inject(std::unique_ptr<DI<Args...>> && dep) { dep->next_ = std::move(next_); next_ = std::move(dep); return *this; } DI & process(Args... args) { handler_(args...); if(next_) next_->process(args...); return *this; } }; } // namespace deps #endif // !DI_CONTAINER_HPP_