diff options
Diffstat (limited to 'src/DI/interfaces/copyable_functor.hpp')
-rw-r--r-- | src/DI/interfaces/copyable_functor.hpp | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/src/DI/interfaces/copyable_functor.hpp b/src/DI/interfaces/copyable_functor.hpp deleted file mode 100644 index 46b7588..0000000 --- a/src/DI/interfaces/copyable_functor.hpp +++ /dev/null @@ -1,41 +0,0 @@ -#pragma once - -#include <typeinfo> - -/** - * A copyable function object. - */ -template <class Function> -class ICopyableFunctor; - -template <class Return, class... Args> -class ICopyableFunctor<Return(Args...)> -{ -public: - ICopyableFunctor() = default; - - ICopyableFunctor(const ICopyableFunctor &) = delete; - - ICopyableFunctor(ICopyableFunctor &&) = delete; - - virtual ~ICopyableFunctor() = default; - - [[nodiscard]] virtual auto clone() const -> ICopyableFunctor * = 0; - - virtual void clone(ICopyableFunctor *) const = 0; - - virtual void destroy() noexcept = 0; - - virtual void destroy_deallocate() noexcept = 0; - - virtual auto operator()(Args &&...) -> Return = 0; - - auto operator=(const ICopyableFunctor &) = delete; - - auto operator=(ICopyableFunctor &&) = delete; - - [[nodiscard]] virtual auto target(const std::type_info &) const noexcept -> const - void * = 0; - - [[nodiscard]] virtual auto target_type() const noexcept -> const std::type_info & = 0; -}; |