stdtuple相关内容

如何迭代 std::tuple 的元素?

如何迭代元组(使用 C++11)?我尝试了以下方法: for(int i=0; i::value; ++i)std::get(my_tuple).do_sth(); 但这不起作用: 错误 1:抱歉,未实现:无法将“Listener ..."扩展为固定长度的参数列表. 错误 2:i 不能出现在常量表达式中. 那么,如何正确迭代元组的元素? 解决方案 Boost.Fus ..
发布时间:2022-01-24 11:18:58 C/C++开发

使用 std::get、std::tuple_size、std::tuple_element 对元组的组件求和

我有一个自定义类,它有一个类似元组的接口.因为我希望我的代码尽可能通用,所以我认为将我的算法基于函数 std::get、std::tuple_size, std::tuple_element 所以你只需要专门化这些函数来使用我的算法.让我们将需要这些函数特化的概念称为 Tuple. 现在我正在尝试总结 Tuple 的组成部分.函数声明应该是这样的: 模板int sum_compo ..
发布时间:2022-01-20 00:09:59 C/C++开发

只有两个成员的 std::pair 和 std::tuple 之间的区别?

std::pair 和只有两个成员的 std::tuple 之间有区别吗?(除了明显的 std::pair 需要两个且只有两个成员并且 tuple 可能有更多或更少......) 解决方案 有一些区别: std::tuple 标准并不要求永远是 standard-layout.如果 T 和 Y 都是标准布局,则每个 std::pair 都是标准布局. 获取 pair 的内容比获 ..
发布时间:2022-01-20 00:02:18 C/C++开发

来自元组的构造函数参数

假设我有一个模板,它由一个类类型和许多参数类型参数化.匹配这些类型的一组参数存储在一个元组中.如何将这些传递给类类型的构造函数? 几乎在 C++11 代码中: template结构 foo {元组参数;T gen() { return T(get(args), get(args), ...);}}; 如何在不固定长度的情况下填充构造函数调用中的...? 我想我可以想出一些复杂的递归 ..
发布时间:2021-12-13 19:16:41 C/C++开发

std::tuple-like 的命名要求?

我正在为 std::tuple 制作一个通用哈希算法,并意识到我可以让它适用于 std::pair 和 std::array 也是如此,因为这三个类实现了 std::tuple_size 和 std::get.这是“标准化"的地方吗?是否有“std::allocator_traits"但对于 std::tuple-like 类而不是 std::allocator-like 类? 目前我这样做 ..
发布时间:2021-09-10 20:07:39 C/C++开发

如何在C ++ 17中创建从可变参数模板推导的向量类型的元组?

我实现了一个收集类,该收集类将元组的向量转换为向量的元组(本质上是AOS到SOA的转换).此代码适用于两个模板类的示例.我试图通过使用可变参数模板使其更通用.为此,我需要为成员变量 m_col 创建类型.在C ++ 17中,是否可以将元组转换为向量的元组?因此,此示例中的成员方差 m_col 的类型将根据模板类型自动生成. template类集合{std :: tuple ..

通过索引c ++ 11访问元组元素

这不是秘密, std :: get(元组)惹恼了许多程序员. 相反,我想使用类似 tuple [i] 之类的东西. 所以我试图模拟它. #include#include#include模板结构索引{};模板结构结合模板结构合并:std :: integral_constant ..
发布时间:2021-04-20 18:48:43 C/C++开发

通过C ++ 20三向比较,可以实现更安静的行为更改

令我惊讶的是,我遇到了另一个障碍,例如 C ++ 20用相等运算符破坏现有代码的行为? . 考虑一个简单的不区分大小写的键类型,例如,与 std :: set 或 std :: map : 一起使用 //表示不区分大小写的键struct CiKey:std :: string {使用std :: string :: string;使用std :: string :: operator = ..
发布时间:2021-04-19 20:53:46 C/C++开发

我可以获取多个链接函数调用的返回类型吗?

我想将函数存储在有序集合中,然后将所有函数应用于某个集合,这将导致获得经过大量修改的值,并将其存储在另一个集合中.我的最初尝试包括创建一个所述函数的std::tuple并尝试获取将所有这些函数应用于特定类型的结果类型(std::invoke_result): int main() { auto multiply = [](const auto arg){ return arg * ..
发布时间:2020-07-10 01:24:30 C/C++开发

可变参数模板参数包,仅接受无符号整数或size_t作为其类型

我正在尝试使用带有可变参数的一组模板类.我前面有几种选择可以选择.在声明或定义任何模板之前,我目前具有以下原型:我对模板很熟悉,但是在使用模板时我对可变参数类型没有太多的经验,因此语法有时会让我有些困惑.由于它们都是空壳,因此它们当前正在编译. template class MatrixReference; tem ..
发布时间:2020-07-10 01:24:24 C/C++开发

如何转发元组的类型以专门化其他模板?

目前,我正在研究一种动态容器结构,该结构表示一个容器值或具有具有相同容器类型的指针向量.该容器具有接口optional expect_value().对于pod类型,实现很简单.对于非pod值,我将调用expect_value>(),而args也将是元组.但是当实现此功能时,我遇到了一个麻烦:如何将a.expect_value ..
发布时间:2020-07-10 01:24:21 C/C++开发

如何比较不同长度的元组?

我想编写一个比较器,该比较器比较长度不同但具有相同“前缀"的元组.考虑以下情况,我有两个元组. auto t1 = std::make_tuple(10, "Test1"); auto t2 = std::make_tuple(10, "Test", 3.14); 我想对t1申请“小于" ..
发布时间:2020-07-10 01:23:18 C/C++开发

通常在元组的每个元素上调用成员函数

第一步:展开一个元组并将元素传递给函数: 我有一个带有N个参数的函数 void func(int, double, char); 和具有匹配类型的元组 std::tuple tuple; 根据此stackoverflow问题,我能够展开元组并调用该函数. 第二步:展开一个元组,并将在每个元素上调用成员函数的结果传递给一个函数: ..
发布时间:2020-07-10 01:22:11 C/C++开发