C++ 使用相同的参数初始化元组

C++ 使用相同的参数初始化元组,c++,c++11,C++,C++11,我似乎不能完全理解这一点。有没有一种方法可以初始化一个元组,其中每个元素都使用相同的参数?例如 template <class... args> std::tuple<args...> tuplemaker(int n) { // What goes here? } auto my_tuple = tuplemaker<int, int, int>(42); 可以肯定的是,这是一个人为的例子。我真正想做的是将相同的参数反复传递给元组元素的构造函数。

我似乎不能完全理解这一点。有没有一种方法可以初始化一个元组,其中每个元素都使用相同的参数?例如

template <class... args>
std::tuple<args...> tuplemaker(int n)
{
    // What goes here?
}

auto my_tuple = tuplemaker<int, int, int>(42);
可以肯定的是,这是一个人为的例子。我真正想做的是将相同的参数反复传递给元组元素的构造函数。有人有什么建议吗?

类似这样的建议:

template <class... args>
  std::tuple<args...> tuplemaker(int n)
{
  return std::make_tuple(args(n)...);
}
.

类似这样的内容:

template <class... args>
  std::tuple<args...> tuplemaker(int n)
{
  return std::make_tuple(args(n)...);
}

.

如果您想要隐式转换,请编写模板T implicit_cast U&&U{return std::forwardu;},并返回std::make tuple implicit_castn。。。在您的元组生成器中,一个参数的显式函数样式转换可能会导致重新解释\u转换,这可能过于激进。。。让你的一个参数成为指针,你会默默地把那个int转换成指针。这真是出人意料的简单。非常感谢。如果需要隐式转换,请编写模板T implicit_cast U&&U{return std::forwardu;},并返回std::make_tuple implicit_castn。。。在您的元组生成器中,一个参数的显式函数样式转换可能会导致重新解释\u转换,这可能过于激进。。。让你的一个参数成为指针,你会默默地把那个int转换成指针。这真是出人意料的简单。非常感谢。