C++0x 原子模板实现

2023-12-25

我知道英特尔的 TBB 中存在类似的模板,除此之外我在 google 或 Boost 库中找不到任何实现。


您可以在 boost 中找到有关此功能实现的讨论:http://lists.boost.org/Archives/boost/2008/11/144803.php http://lists.boost.org/Archives/boost/2008/11/144803.php

> N2427 - C++ 原子类型和操作可以实现吗

> 没有编译器的帮助?

No.

如果您可以编写内联汇编程序(或单独编译的汇编程序),则它们不需要是内在函数 这很重要)然后你可以写 直接自己操作。你 甚至可以使用简单的 C++ (例如,只是简单的负载分配 或商店)。你需要的理由 编译器支持正在阻止 不适当的优化:原子 操作无法优化,并且 一般不得重新排序 在任何其他操作之前或之后。 这意味着即使是非原子 在原子之前执行的存储 商店必须完整,并且不能 缓存在寄存器中(例如)。 此外,负载发生后 原子操作无法提升 在原子操作之前。一些 编译器,仅使用内联汇编器 足够。在其他方面,调用 外部功能就足够了。 MSVC 提供 _ReadWriteBarrier() 提供编译器排序。其他编译器 需要其他标志。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++0x 原子模板实现 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 如何使从 C# 调用的 C(P/invoke)代码“线程安全”

    我有一些简单的 C 代码 它使用单个全局变量 显然这不是线程安全的 所以当我使用 P invoke 从 C 中的多个线程调用它时 事情就搞砸了 如何为每个线程单独导入此函数 或使其线程安全 我尝试声明变量 declspec thread 但
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 如何在当前 Visual Studio 主机内的 Visual Studio 扩展中调试使用 Roslyn 编译的代码?

    我有一个 Visual Studio 扩展 它使用 Roslyn 获取当前打开的解决方案中的项目 编译它并从中运行方法 程序员可以修改该项目 我已从当前 VisualStudioWorkspace 成功编译了 Visual Studio 扩
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite

随机推荐

  • 使用 JavaScript 分割 url

    我正在尝试拆分以下网址 http www store com products aspx Books The happy donkey 为了只得到http www store com products aspx 我正在使用 JavaScri
  • 如何校准 Android 加速度计并降低噪音、消除重力

    所以 我已经在这个问题上挣扎了一段时间 并且没有运气利用互联网的智慧和有关该主题的相关 SO 帖子 我正在编写一个 Android 应用程序 它使用无处不在的加速度计 但即使在休息时 我似乎也会收到令人难以置信的大量 噪音 而且似乎不知道如
  • 如何正确配置 ASP.NET Core 5 Swagger 以与 Azure A/D 授权代码身份验证配合使用?

    我正在将 ASP NET Core 5 Web API 安全性从隐式升级为授权代码 身份验证是使用 Azure A D 完成的 我还需要允许使用 Swagger 文档 我已经设法使它工作 但 client secret 在我的情况下毫无用处
  • 未找到请求 ajax spring mvc

    我和人们有一张桌子 当我单击删除图标时 我想从数据库中删除该人 并在成功后从表中删除该行 我不断地得到deleteEmployee id 37 not found 404 我有一个控制器 RequestMapping value delet
  • 如何检查 no 是否阶乘?

    我有一个问题 然后给定一些输入数字 n 我们必须检查该 no 是否是其他某个 no 的阶乘 输入 24 输出真输入 25 输出假我为其编写了以下程序 int factorial int num1 if num1 gt 1 return nu
  • ODBC 管理员找不到 Oracle TNS 名称文件

    当我去安装新的 Oracle 时Configuration Management Tools gt Microsoft ODBC Administrator gt System DSN gt Add gt new installation
  • 支持使用 ajax 的浏览器后退按钮而不依赖于哈希更改?

    我目前正在使用 jQuery BBQ 插件来启用 Bowser 导航按钮 但我有一个问题 如果用户为其中一个页面保存书签 比如说 www mysite com page1 当用户通过书签返回时 必须首先加载整个页面 www mysite c
  • 释放指针变量指向的内容后重用它们是否安全?

    释放指针指向的数据后重用指针是否安全且可预测 例如 char fileNames words txt moreWords txt char words NULL int wordsCount NULL for i 0 i lt 2 i da
  • 是否有 Google 自定义搜索 REST API 的工作示例?

    我需要创建一个自动执行 Google 搜索的屏幕 我了解 JavaScript 并且我正在努力让 GSE 工作 我有一个搜索引擎和一个 API 密钥 问题是谷歌的文档是循环的 即页面相互指向 没有可以让我开始研究的工作样本 如果您知道工作示
  • 这两个递归函数可以合并为一个吗?

    int sorted a int arr int N if N 1 N 0 return 1 if arr N 1 lt arr N 2 return 0 return sorted a arr N 1 int sorted d int a
  • 如何从 asmx Web 服务返回纯 XML?

    我想要一个带有方法 GetPeople 的 asmx Web 服务 该方法返回以下 XML 不是 SOAP 响应
  • Perl 中浮点到十进制转换的二进制表示

    我读了堆栈溢出问题如何在 Perl 中将二进制字符串转换为数字 https stackoverflow com questions 483655 how do i convert a binary string to a number in
  • 异步 System.Threading.Timer 有时会抛出空异常[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我试图在一段时间间隔后异步执行代码 并且只想在完成代码执行后再次检查以防止重叠 为此 我使用以下变量和计时器代码 pri
  • 伪类和伪元素有什么区别?

    有什么区别div after and div after 我们什么时候必须使用 over 双冒号和单冒号表示法是区分的 伪类和伪元素 上述说法的实际含义是什么 From https developer mozilla org en US d
  • 如何在 Markdown 标记中缩进几行?

    我想写几行文字 它们的格式应正常 但每行应从第六列开始 IE 我不希望代码块格式化规则使这块文本看起来像代码 因为我将使用其他格式 如粗体等 如何在 Markdown 中做到这一点 Markdown 的原生功能无法做到这一点 然而 mark
  • Xcode 9 - 测试目标 X 遇到错误(无法连接到测试管理器)

    我正在尝试运行一些单元测试 但它一直给我错误 Showing Recent Issues Test target X encountered an error Unable to connect to test manager on d73
  • 使用什么算法来计算校验位?

    使用什么算法来计算数字列表的校验位 列表的长度在 8 到 12 位数字之间 也可以看看 如何生成验证码 号码 https stackoverflow com questions 46231 how to generate a verific
  • Firebase HTTP v1 API 不再批量发送?

    我收到了一封来自 Google 的电子邮件 通知我以下服务即将停用 在对 FCM 的单个 HTTP 请求中包含多个发送请求 称为批量发送 推荐的方法是 通过 HTTP v1 API 发送消息 该 API 已针对扇出性能进行了优化 在本页面
  • Symfony2 twig 翻译 {% trans %} 标签中的变量值

    我正在开发一个 Symfony2 项目并有一个问题 合而为一twig模板我从控制器收到一个变量 这是一个字符串 我需要翻译它 但语法 trans post name endtrans 返回错误 消息必须是 中的简单文本 那么有没有办法翻译变
  • C++0x 原子模板实现

    我知道英特尔的 TBB 中存在类似的模板 除此之外我在 google 或 Boost 库中找不到任何实现 您可以在 boost 中找到有关此功能实现的讨论 http lists boost org Archives boost 2008 1