diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2015-09-27 15:14:07 -0700 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2015-09-27 15:14:07 -0700 |
commit | e6a376fc606bd28796dd1733af079d5a825c1b52 (patch) | |
tree | 947650fca74d2753bf149a7b647ffa670edf4850 /ldid.cpp | |
parent | a0c715e9c070b60702407b8713b3874593ff833d (diff) | |
download | ldid-e6a376fc606bd28796dd1733af079d5a825c1b52.tar.gz ldid-e6a376fc606bd28796dd1733af079d5a825c1b52.tar.zst ldid-e6a376fc606bd28796dd1733af079d5a825c1b52.zip |
Move Functor implementation to header for the API.
Diffstat (limited to 'ldid.cpp')
-rw-r--r-- | ldid.cpp | 37 |
1 files changed, 0 insertions, 37 deletions
@@ -923,43 +923,6 @@ class Map { } }; -// I wish Apple cared about providing quality toolchains :/ - -template <typename Function_> -class Functor; - -template <typename Type_, typename... Args_> -class Functor<Type_ (Args_...)> { - public: - virtual Type_ operator ()(Args_... args) const = 0; -}; - -template <typename Function_> -class FunctorImpl; - -template <typename Value_, typename Type_, typename... Args_> -class FunctorImpl<Type_ (Value_::*)(Args_...) const> : - public Functor<Type_ (Args_...)> -{ - private: - const Value_ *value_; - - public: - FunctorImpl(const Value_ &value) : - value_(&value) - { - } - - virtual Type_ operator ()(Args_... args) const { - return (*value_)(args...); - } -}; - -template <typename Function_> -FunctorImpl<decltype(&Function_::operator())> fun(const Function_ &value) { - return value; -} - namespace ldid { static void Allocate(void *idata, size_t isize, std::streambuf &output, const Functor<size_t (size_t)> &allocate, const Functor<size_t (std::streambuf &output, size_t, const std::string &, const char *)> &save) { |