]> git.saurik.com Git - ldid.git/blobdiff - ldid.cpp
Move Functor implementation to header for the API.
[ldid.git] / ldid.cpp
index 9ed5792ac3560afee0cc351be40a2e1354f3fcc6..0cb8dd2f74108237a60b317768601ca7be143d92 100644 (file)
--- a/ldid.cpp
+++ b/ldid.cpp
@@ -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) {