- template<typename L, typename A0, typename A1>
- void add(const std::string &k, void (L::*func)(A0, A1))
- { add(k, new LoaderFunc2<L, A0, A1>(func)); }
-
- template<typename L, typename A0, typename A1, typename A2>
- void add(const std::string &k, void (L::*func)(A0, A1, A2))
- { add(k, new LoaderFunc3<L, A0, A1, A2>(func)); }
-
- template<typename L, typename A0, typename A1, typename A2, typename A3>
- void add(const std::string &k, void (L::*func)(A0, A1, A2, A3))
- { add(k, new LoaderFunc4<L, A0, A1, A2, A3>(func)); }
+ template<typename L, typename... Args>
+ void add(const std::string &k, void (L::*func)(Args...))
+ { add(k, new LoaderFuncN<L, Args...>(func)); }