11

C ++ 11では、1つの関数に対して2つの可変個引数テンプレートを使用できますか?

そうでない場合は、そのようなものを書くためのトリックがあります:

template <class... Types, class... Args> 
void f(const std::tuple<Types...>& t, Args&&... args)
4

1 に答える 1

16

それは完全に合法です:

#include <tuple>

using namespace std;

template <class... Types, class... Args>
void f(const std::tuple<Types...>& t, Args&&... args)
{
    // Whatever...
}

int main()
{
    std::tuple<int, double, bool> t(42, 3.14, false);
    f(t, "hello", true, 42, 1.0);

    return 0;
}
于 2013-02-23T17:43:28.330 に答える