我在弄清楚如何做一些模板魔术时遇到问题。我想做的就是传递一个函数的类型列表。

function<int, std::string, int>(); //no parameters


然后让它返回那些类型的元组

std::tuple<int, std::string, int> x;


我计划用SQLiteCPP库“ https://github.com/SRombauts/SQLiteCpp”中的query.getColumn函数填充元组。该函数根据查询返回不同的类型。最终目标是使元组充满列的值。

我所见过的与相似事物有关的所有示例都是参数包的形式。参数包可用于将值传递给函数,但不会输出特定类型。我假设我将不得不做一些类似的事情来输入值。谢谢!

最佳答案

你想要下面的东西吗?

#include <iostream>
#include <tuple>
#include <utility>
#include <typeinfo>

template <typename... Args>
std::tuple<Args...> func() {
  std::tuple<Args...> x;
  return x;
}

int main() {
  auto r = func<int, char>();
  std::cout << typeid(r).name() << std::endl;
  return 0;
}


它将给出以下输出:

./auto_tuple | C ++过滤-t
std :: tuple


我可能误解了您的问题,在这种情况下,请告诉我(在这种情况下,我应该将其删除)

关于c++ - 返回带有推断值的通用长度元组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34585940/

10-16 03:04