Boost.Coroutine 不使用分段堆栈

2024-01-12

谁能给我一个例子,说明如何将分段堆栈与 boost 协程一起使用?我是否必须使用特殊的注释来注释从协程调用的每个函数split-stack属性?

当我尝试编写一个程序时should使用分段堆栈,它只会出现段错误。


这是我到目前为止所做的https://wandbox.org/permlink/TltQwGpy4hRoHgDY https://wandbox.org/permlink/TltQwGpy4hRoHgDY代码似乎很快就会出现段错误,如果使用分段堆栈,我希望它能够处理更多迭代。程序在 35 次迭代后出错。

#include <boost/coroutine2/all.hpp>

#include <iostream>
#include <array>

using std::cout;
using std::endl;

class Int {
    int a{2};
};

void foo(int num) {
    cout << "In iteration " << num << endl;
    std::array<Int, 1000> arr;
    static_cast<void>(arr);
    foo(num + 1);
}

int main() {
    using Coroutine_t = boost::coroutines2::coroutine<int>::push_type;
    auto coro = Coroutine_t{[&](auto& yield) {
        foo(yield.get());
    }};

    coro(0);
}

编译该代码-fsplit-stack解决问题。不需要注释。默认情况下,所有函数都被视为拆分堆栈。例子 -https://wandbox.org/permlink/Pzzj5gMoUAyU0h7Q https://wandbox.org/permlink/Pzzj5gMoUAyU0h7Q

就这么简单。

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

Boost.Coroutine 不使用分段堆栈 的相关文章

  • 按扩展名过滤搜索文件返回太多结果

    我正在开发一个 C 控制台应用程序 它必须管理 Windows 操作系统上的文件 我需要获取具有特定扩展名的文件名 列表 我找到了很多解决方案 最建议的是以下一种 HANDLE hFind WIN32 FIND DATA data hFin
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • Eigen 和 OpenMP:由于错误共享和线程开销而没有并行化

    系统规格 Intel Xeon E7 v3 处理器 4 插槽 16 核 插槽 2 线程 核心 Eigen 系列和 C 的使用 以下是代码片段的串行实现 Eigen VectorXd get Row const int j const int
  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 是否使用 C# 数据集? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 C 中的数据集概念有点困惑 编码 ASP NET 站点 但这并不重要 在我的阅读中 我了解到它们 本质上 用作我的应用程序和我的
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 不可变类与结构

    以下是类与 C 中的结构的唯一区别 如果我错了 请纠正我 类变量是引用 而结构变量是值 因此在赋值和参数传递中复制结构的整个值 类变量是存储在堆栈上的指针 指向堆上的内存 而结构变量作为值存储在堆上 假设我有一个不可变的结构 该结构的字段一
  • 将 Word 转换为 PDF - 禁用“保存”对话框

    我有一个用 C 编写的 Word 到 PDF 转换器 除了一件事之外 它工作得很好 有时 在某些 Word 文件上 后台会出现一条消息保存源文件中的更改 gt 是 否 取消 但我没有对源文件进行任何更改 我只想从 Word 文件创建 PDF
  • 将函数参数类型提取为参数包

    这是一个后续问题 解包 元组以调用匹配的函数指针 https stackoverflow com questions 7858817 unpacking a tuple to call a matching function pointer
  • C++:为什么 numeric_limits 对它不知道的类型起作用?

    我创建了自己的类型 没有任何比较器 也没有专门化std numeric limits 尽管如此 由于某种原因 std numeric limits
  • 将 Lambda 表达式树与 IEnumerable 结合使用

    我一直在尝试了解有关使用 Lamba 表达式树的更多信息 因此我创建了一个简单的示例 这是代码 如果作为 C 程序粘贴到 LINQPad 中 它可以工作 void Main IEnumerable
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • 在 Win32 控制台应用程序中设置光标位置

    如何在 Win32 控制台应用程序中设置光标位置 最好 我想避免制作句柄并使用 Windows 控制台功能 我花了整个早上沿着那条黑暗的小巷跑 它产生的问题比它解决的问题还要多 我似乎记得当我在大学时使用 stdio 做这件事相对简单 但我
  • 为什么空循环使用如此多的处理器时间?

    如果我的代码中有一个空的 while 循环 例如 while true 它将把处理器的使用率提高到大约 25 但是 如果我执行以下操作 while true Sleep 1 它只会使用大约1 那么这是为什么呢 更新 感谢所有精彩的回复 但我
  • MySqlConnectionStringBuilder - 使用证书连接

    我正在尝试连接到 Google Cloud Sql 这是一个 MySql 解决方案 我能够使用 MySql Workbench 进行连接 我如何使用 C 连接MySqlConnectionStringBuilder 我找不到提供这三个证书的

随机推荐

  • 为什么我安装了 mtl-2.2.2 后无法导入 Control.Monad.Writer?

    我正在尝试导入 Writer monad 其定义在mtl 2 2 2我检查后已安装的软件包ghc pkg list 当我尝试做的时候import Control Monad Writer in ghci它给了我一个错误 我不明白为什么 Pr
  • VS 2017中使用脚手架出错

    我正在尝试在 Visual Studio 2017 的 ASP NET Core 应用程序中使用 Scaffold 功能 我正在使用带有视图的 MVC 控制器和实体框架 我已经设置了 dbcontext 和迁移 并使用 update dat
  • 杰克逊列表反序列化。嵌套列表

    我正在努力创建一个具有嵌套列表的 API Jackson 似乎是一个创建对象的好工具 但我不太清楚如何嵌套列表 我想知道它是否可能 我的对象看起来像这样 public class Order public String name publi
  • 如何在 Django 用户名正则表达式中允许空格?

    我试图允许默认 django contrib auth models 用户的用户名字段接受空格 其他人之前已经直接问过或类似的问题 Here https stackoverflow com questions 19911087 how ca
  • 如何在Ant中使用javac排除源包?

    我查看了一堆不同的示例 并尝试了几种变体 但似乎无法使其正常工作 看来您无法使用 javac 排除整个目录 而只能排除文件 我想这意味着您无法指定包 这是我所拥有的
  • 在sql server中创建视图

    我试图创建链接 2 个表管理员和新闻的视图 create view v news as SELECT n id n title n detail n date n sdate n edate n admin a name a email a
  • kernel32.dll Sleep 和 Thread.Sleep() 之间有什么区别

    以下内容之间是否有任何区别 性能 实现等 i DllImport kernel32 dll public extern static void Sleep uint msec 然后调用睡眠函数 ii Thread Sleep 实际上有很大的
  • Nginx 中不同 IP 上的不同域?

    例如 我想使用具有不同 IP 地址的两个不同域 domain1 com 12 34 56 78 domain2 com 98 76 54 32 我在用nginx在 Linux 操作系统上 我应该在 nginx conf 中添加什么 你必须创
  • 使3个数组相互对应,第一个是对象名称

    我目前有多个对象 如下所示 let object1 xyz xyz1 arr object2 xyz xyz2 arr object3 xyz xyz3 arr 这变得很长而且多余 无论如何我可以创建 3 个数组 例如 let objNam
  • 向 307 重定向添加标头

    除了 Location 之外 是否真的不能添加 修改 307 标头 我正在尝试在 Node js 中执行此操作 并且客户端似乎未使用新添加的标头 X Atlassian Token no check res writeHead 307 Lo
  • 自定义 Google Map API V3 缩放按钮

    如何将 google 地图 api v3 javascript 缩放按钮自定义为我自己的图像 我在聚会上迟到了 但这是我的两分钱 您基本上有两个选择 选项1 您可以自己使用 HTML CSS 创建控件 然后可以使用绝对位置或类似方法将其放置
  • 尝试标记 odata 时,可查询属性未在 mvc 4 Web api 中编译

    我正在使用 Visual Studio 2012 附带的 MVC 4 Web api 据我了解 odata 不会自动解析 但我们现在需要向操作添加 Queryable 属性 所以我添加了它 public class TestControll
  • 如何在jinja2模板中使用变量传递过滤器名称

    我定义了一些过滤器并且经常使用它们 我需要做一些 A B 测试 为此在某些情况下一些过滤器应该以不同的方式工作 最简单的方法是在模板中创建一个存储过滤器名称的变量 像这样的东西 set filter name some name my va
  • 使用带有 Helm 安装的 Kafka/Confluence 的连接器

    我已经使用 Helm 图表在本地 Minikube 上安装了 Kafkahttps github com confluenceinc cp helm charts https github com confluentinc cp helm
  • 什么是 zygo/meta/histo/para/futu/dyna/whatever 态射?

    是否有一个包含示例的列表 可供没有广泛范畴论知识的人使用 使用香蕉 透镜 信封和铁丝网进行函数式编程 PDF http eprints eemcs utwente nl 7281 01 db utwente 40501F46 pdf也应该有
  • httputility 在框架 3.5 的当前上下文中不存在

    我正在尝试使用HttpUtility UrlEncode in my sharepoint项目在framework 3 5但它不认识它 简单地说 当前上下文中不存在 HttpUtility 我打了电话System Web但它仍然无法识别任何
  • 对于运行 nginx 的 Elastic Beanstalk,如何将 http 重定向到 https?

    我知道关于这个话题有很多问题 但是 似乎都不适用于最新版本的 Elastic Beanstalk Docker 组合 我正在运行一个Django Python内的网络应用程序Docker 然后我将其部署到 Elastic Beanstalk
  • Oracle 修剪池仅尾随空白(不包括前导空白)

    我想知道是否有什么技巧可以获取trimspool仅修剪右侧的尾随空白 我有使用 dbms output put line 打印到控制台的代码 并且输出通常有缩进 以便更容易用眼睛扫描 我将线宽设置得相当大 以使某些输出更易于阅读 因此我还设
  • 获取同一解决方案中另一个可执行文件的应用程序路径

    我使用的是c VS 2005 我有两个项目的一个解决方案 经过一些检查后 项目 1 需要启动项目 2 如何从 Project1 中获取 Project2 的可执行路径 我需要一个适用于调试和实时模式的解决方案 thanks KS 第二个项目
  • Boost.Coroutine 不使用分段堆栈

    谁能给我一个例子 说明如何将分段堆栈与 boost 协程一起使用 我是否必须使用特殊的注释来注释从协程调用的每个函数split stack属性 当我尝试编写一个程序时should使用分段堆栈 它只会出现段错误 这是我到目前为止所做的http