c++11相关内容

将元组的内容作为可变参数传递

我用 C++0x 玩了一段时间,现在我想使用可变参数模板和元组来实现类“任务".我将把 Task 对象传递给新创建的线程(使用 pthread).任务类将包含指向函数的函数指针,该函数应在线程内调用和该函数的参数,简化代码: 类TaskCaller{//...虚拟布尔调度(无效);};模板任务 :公共任务调用者{上市://...任务 (bool ..
发布时间:2022-01-20 08:02:43 C/C++开发

将 std::tuple 转换为模板参数包

我有一个 typedef std::tuple元组类型; 并且想使用类列表对于“模板". 假设我有: templatestd::tuple解析(std::istream &stream){返回 std::make_tuple(args(stream)...);} 并且我可以成功地使用它: auto my_tuple = parse(ifs); 如果我已经有一个, ..
发布时间:2022-01-20 00:05:16 C/C++开发

检测类型是否为 std::tuple?

目前我有两个功能: templatebool f(类型* x);模板bool f(std::tuple* x); 有什么方法可以将这两个函数与一个额外的模板参数合并,该参数指示传递的类型是否为元组? template 解决方案 当然,使用 is_specialization_of(链接取自 这里): template::value>bool f(类 ..
发布时间:2022-01-20 00:04:58 C/C++开发

使自定义类型“可绑定"(与 std::tie 兼容)

假设我有一个自定义类型(我可以扩展): struct Foo {诠释一个;字符串 b;}; 如何使该对象的实例可分配给 std::tie,即 std::tuple 引用? Foo foo = ...;诠释一个;字符串 b;std::tie(a, b) = foo; 尝试失败: 重载 tuple 是不可能的,因为赋值运算符是二进制运算符之一,它必须是左侧对象的成员. 所以我尝试通 ..
发布时间:2022-01-19 23:55:34 C/C++开发

std::tuple 内存对齐

对于元组的伪成员的布局和内存对齐是否有任何正式的规范? 有没有办法修改元组中类型的内存对齐方式?是否受#pragma pack() 指令影响? 例如: typedef std::tuple;我的元组; 是否有任何规范说明这将在内存中与以下内容相同: #pragma pack()//默认打包结构我的结构{uint8_t 优先;uint32_t 秒;} 抱歉,如果这是一个愚蠢的问题 ..
发布时间:2022-01-19 23:53:46 C/C++开发

获取 std::tuple 的一部分

我有一个未知大小的元组(它是方法的模板参数) 有没有办法得到它的一部分(我需要扔掉它的第一个元素) 例如,我有 tuple(7,12,42).我想要 tuple(12,42) 这里 解决方案 借助编译时整数列表: #include 模板 结构 ct_integers_list {模板 结构 pus ..
发布时间:2022-01-19 23:47:31 C/C++开发

C ++ 11在运行时索引元组而不使用开关的方法

我有一段类似如下的 c++11 代码: switch(var) {案例 1:dsomething(std::get(tuple));案例 2:dsomething(std::get(tuple));...} 有什么办法可以去掉这个大开关吗?请注意,get 不起作用,因为 var 不是常量,但我知道 var 的范围很小,即 (0-20). 注意这里的重点是避免使用导致 ..
发布时间:2022-01-19 23:47:07 C/C++开发

使用 std::make_tuple 时如何避免构造函数的未定义执行顺序

如果构造函数的执行顺序很重要,我该如何使用 std::make_tuple? 比如我猜A类的构造函数和B类的构造函数的执行顺序是未定义的: std::tuplet(std::make_tuple(A(std::cin), B(std::cin))); 我在阅读了对该问题的评论后得出了这个结论 将 std::tuple 转换为模板参数包 这就是说这个 templa ..
发布时间:2022-01-19 23:46:12 C/C++开发

如何在 C++ 11 中迭代 std::tuple

我做了以下元组: 我想知道我应该如何迭代它?有 tupl_size(),但是阅读文档后,我不知道如何使用它.我也有搜索所以,但问题似乎是围绕 Boost::tuple . auto some = make_tuple("我很好", 255, 2.1); 解决方案 这里尝试将元组的迭代分解为组件部分. 首先是一个函数,表示按顺序执行一系列操作.请注意,尽管据我所知它是合法的 C++ ..
发布时间:2022-01-19 23:45:40 C/C++开发

有人可以解释一下“指数技巧"吗?

我注意到在漂亮打印元组的上下文中提到了“索引技巧".听起来很有趣,所以我关注了 链接. 好吧,那并不顺利.我理解这个问题,但真的无法理解发生了什么.为什么我们甚至需要任何东西的索引?那里定义的不同功能对我们有何帮助?什么是“裸"?等等 有人可以为参数包和可变元组方面的专家详细介绍该内容吗? 解决方案 问题是:我们有一个 std::tuple 并且我们有一些函数f 我们可以在每个 ..
发布时间:2022-01-19 23:42:00 C/C++开发

漂亮的打印 std::tuple

这是我之前关于漂亮打印STL容器,为此我们设法开发了一个非常优雅且完全通用的解决方案. 在下一步中,我想为 std::tuple 包括使用可变参数模板的漂亮打印(所以这严格来说是 C++11).对于std::pair,我简单说 std::ostream &运算符 & p){返回 o ..
发布时间:2022-01-19 23:36:29 C/C++开发