c++11相关内容

寻找对我的线程安全、无锁队列实现的批评

所以,经过一番研究,我写了一个队列.它使用固定大小的缓冲区,因此它是一个循环队列.它必须是线程安全的,我试图让它无锁.我想知道它有什么问题,因为这些事情我自己很难预测. 这是标题: 模板类 LockFreeQueue{上市:LockFreeQueue(uint buffersize) : buffer(NULL), ifront1(0), ifront2(0), ibac ..
发布时间:2022-01-21 11:59:39 C/C++开发

std::条件编译时分支评估

编译: 模板 结构相同{static constexpr bool 值 = std::conditional 给我这个编译器错误: error: 模板参数的数量错误(1,应该是 2 或更多) 问题在于 isSame 有一个空的 Args 参数包,所以 isSame 实际上变成了 isSame 与签 ..
发布时间:2022-01-20 23:58:00 C/C++开发

Linux 不尊重 SCHED_FIFO 优先级?(正常或 GDB 执行)

TL;DR 在多处理器/多核引擎上,可以在多个执行单元上调度多个 RT SCHED_FIFO 线程.因此优先级为 60 的线程和优先级为 40 的线程可以同时运行在 2 个不同的内核上. 这可能违反直觉,尤其是在模拟嵌入式系统时(通常像今天一样)在单核处理器上运行并依赖严格的优先级执行. 请参阅此帖子中的我的其他答案以获取摘要 原始问题描述 即使使用非常简单的代码来让 ..
发布时间:2022-01-20 20:30:11 服务器开发

如何在 MacPorts gcc 4.5 中调试 C++0x 程序?

我正在尝试调试一个简单的 c++ 程序,但 gdb 找不到库的目标文件(或没有可用的调试信息),而且它似乎也无法找到我的可执行文件的调试符号. 我在 OSX 10.5.8 上,使用 macports,我用 编译我的代码 g++-mp-4.5 -Wall -pedantic -std=c++0x -g -ggdb -I/opt/local/include -L/opt/local/lib ..
发布时间:2022-01-20 20:25:22 其他开发

调试 C++ 程序时出现奇怪的 gdb 消息

我用的是苹果的gdb,版本如下 GNU gdb 6.3.50-20050815(Apple 版本 gdb-1344)(2009 年 7 月 3 日星期五 01:19:56 UTC)版权所有 2004 Free Software Foundation, Inc.GDB 是自由软件,受 GNU 通用公共许可证保护,您是欢迎在某些条件下更改和/或分发它的副本.键入“显示复制"以查看条件.GDB 绝对没 ..
发布时间:2022-01-20 20:05:28 C/C++开发

GDB 以乱序方式跳到错误的行

应用设置:我有使用以下 3rd 方库的 C++11 应用程序: 提升 1.51.0 cppnetlib 0.9.4 jsoncpp 0.5.0 应用程序代码依赖于几个内部共享对象,它们都是由我的团队开发的(针对这些共享对象执行经典的链接时间,不使用dlopen等) 我使用的是 GCC 4.6.2,使用 GDB 7.4 和 7.6 时出现问题. 操作系统 - Red Ha ..
发布时间:2022-01-20 20:05:13 C/C++开发

有效地将 std::unordered_set 的内容移动到 std::vector

在我的代码中,我有一个 std::unordered_set,我需要将数据移动到 std::vector 中.我在获取数据时使用 std::unordered_set 以确保在转换为 std::vector 之前只存储唯一值.我的问题是如何最有效地将内容移动到 std::vector ?移动数据后我不需要 std::unordered_set .我目前有以下: std::copy(set.beg ..
发布时间:2022-01-20 18:13:50 C/C++开发

std::find 的优点

与容器的 find 方法相比,使用 C++11 的 std::find 有什么优势吗? 在 std::vector (没有 find 方法)的情况下 std::find 使用是一些智能算法还是简单地迭代每个元素的简单方法? 在 std::map 的情况下,您似乎需要传递一个 std::pair,即 value_typestd::map 的代码>.这似乎不是很有用,因为您通常希望找到键或 ..
发布时间:2022-01-20 17:27:53 C/C++开发

如何在 C++11 中将元组转换为字节数组

我需要编写一个函数来将元组转换为字节数组.元组的类型可能包括int、long、double、std::string、char*等.元组的大小和类型是任意的,比如 std:tuplet1("abc", 1, 1.3); 或 std:tuplet2("abc", 1, 2, 1.3, 1.4, "你好"); 我想使用这些元组作为输入,字节数组作为返回值.我该怎么办 ? 解决方案 还有精 ..
发布时间:2022-01-20 08:21:10 C/C++开发

C++ 多索引映射实现

我正在 C++11 中实现一个多索引映射,我希望针对特定功能对其进行优化.我目前正在尝试解决的问题是不要多次存储关键元素.但是让我解释一下. 问题源于对直方图进行排序以将它们叠加在不同的组合中.直方图有名称,可以拆分为标记(属性). 以下是我希望我的属性地图具有的功能: 能够以任意顺序循环属性; 能够为每个属性返回具有唯一值的容器; 按属性到达的顺序累积属性值,但能够在地图填 ..
发布时间:2022-01-20 08:15:17 C/C++开发

元组向量和 initializer_list

我尝试用 gcc4.7 编译以下代码片段 向量>vp = {{1,'a'},{2,'b'}};//对于对向量,它就像一个魅力.向量>vt = {{1,0.1,'a'},{2,4.2,'b'}}; 但是,对于元组的向量,编译器会抱怨: 错误:从初始化列表转换为“std::tuple"将使用显式构造函数“constexpr ..
发布时间:2022-01-20 08:13:20 C/C++开发

如何在 C++11 (STL) 中创建一个压缩两个元组的函数?

我最近遇到了这个难题,终于能够找到一个 hacky 答案(使用索引数组),并想分享它(答案如下).我确信有使用模板递归的答案和使用 boost 的答案;如果您有兴趣,请分享其他方法来做到这一点.我认为将这些全部放在一个地方可能会使其他人受益,并且对于学习一些很酷的 C++11 模板元编程技巧很有用. 问题:给定两个长度相等的元组: auto tup1 = std::make_tuple(1 ..
发布时间:2022-01-20 08:06:35 C/C++开发

C++11 标记元组

C++11 元组很好,但它们对我来说有两个巨大的缺点,通过索引访问成员是 不可读 难以维护(如果我在元组中间添加一个元素,我就完蛋了) 本质上我想要实现的是这个 tagged_tuple 获取记录();{/*...*/}//然后在别的地方std::cout ..
发布时间:2022-01-20 08:05:21 C/C++开发

TMP:如何编写将任何结构转换为元组的模板代码?

是否可以使用模板元编程将任何结构或类转换为元组? 例如: struct Foo{字符 c;诠释我;std::string s;};typedef std::tuple 如果有一些模板代码会自动为我生成 Foo_Tuple,那就太好了. 回答 这对于这样一个简单的案例来说是多余的,但对于更复杂的案例(例如 ORM 或任何需要编写大量样板代码,而仅仅模板或宏不足以完成任务), ..
发布时间:2022-01-20 08:03:39 C/C++开发

std::tuple 参数中的类型顺序有什么影响吗?

假设我想在 tuple 中存储三种类型:int、float 和 std::vector 如果我抛开后续界面的事情,这样做 元组>吨; 和这个有什么不同 元组, int, float>吨; 由于将 tuple 实现为可变参数基类,我希望生成的类有一个不同的布局,但 在有什么办法?在将类型放入 tuple ..
发布时间:2022-01-20 08:02:56 C/C++开发