【发布时间】:2017-01-03 09:03:46
【问题描述】:
我想传递多个参数以便在一个函数中构造两个对象,与std::pair<T1, T2>(std::piecewise_construct, ...) 的工作方式相同。
所以我写了
template <typename Args0..., typename Args1...>
void f(std::tuple<Arg0> args0, std::tuple<Args1> args1) {
Object0 alpha(...);
Object1 beta(...);
...
}
所以我可以打电话
f(std::forward_as_tuple(..., ..., ...), std::forward_as_tuple(..., ...))
但我不知道如何构造Object0 和Object1。我已经检查了std::pair 的标准库的源代码,它们似乎使用复杂的内部函数来获取 args0 和 args1 的索引。你知道怎么做吗?
【问题讨论】: