#ifndef LDID_HPP #define LDID_HPP #include #include #include #include namespace ldid { // I wish Apple cared about providing quality toolchains :/ template class Functor; template class Functor { public: virtual Type_ operator ()(Args_... args) const = 0; }; template class FunctorImpl; template class FunctorImpl : public Functor { private: const Value_ *value_; public: FunctorImpl(const Value_ &value) : value_(&value) { } virtual Type_ operator ()(Args_... args) const { return (*value_)(args...); } }; template FunctorImpl fun(const Function_ &value) { return value; } typedef std::map Slots; void Sign(void *idata, size_t isize, std::streambuf &output, const std::string &name, const std::string &entitlements, const std::string &key, const Slots &slots); } #endif//LDID_HPP