我在弄清楚如何做一些模板魔术时遇到问题。我想做的就是传递一个函数的类型列表。
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/