Why do not D allow templates with more than one tuple
parameters,at the
same time that C++11 support it:

namespace
{
template <class R,unsigned int N>
struct Apply_Helper
{
        template<typename F, typename... ArgsT, typename... Args>
        static R apply(const F& f, const std::tuple<ArgsT...>& t,
Args&... args) {
        return Apply_Helper<R,N-1>::apply(f, t, std::get<N-1>(t),
args...);
        }
};

template <class R>
struct Apply_Helper<R,0>
{
        template<typename F, typename... ArgsT, typename... Args>
        static R apply(const F& f, const std::tuple<ArgsT...>&, Args&...
args) {
                return f(args...);
        }
};

template <typename R, typename... ArgsT>
R apply(const std::function<R(ArgsT...)>& f,
std::tuple<ArgsT...>& t)
{
        return Apply_Helper<R,sizeof...(ArgsT)>::apply(f, t);
}
this code compiles in gcc 4.6.1

Reply via email to