堆分配什么的语法?

2024-05-17

是否有语法、模板或函数允许我将任何值本质上转换为指向该值的指针? IE。将其复制到GC堆并返回指向它的指针? “new”并不适用于所有类型,std.experimental.allocator 不适用于 ctfe,并且两者似乎都在指向委托时遇到了麻烦。


您可以将有问题的数据放入struct,然后使用new该结构上的关键字。

T* copy_to_heap(T)(T value) {
        // create the struct with a value inside
        struct S {
                T value;
        }
        // new it and copy the value over to the new heap memory
        S* s = new S;
        s.value = value;
        // return the pointer to the value
        return &(s.value);
}

void main() {
        // example use with a delegate:
        auto dg = copy_to_heap(() { import std.stdio; writeln("test"); });
        (*dg)();
}

这假设您已经有一个要复制的值,但这可能更容易,而且无论如何您都会这样做。但如果您愿意,您也可以调整代码以删除该要求(例如,可能只需传递 typeof.init )。

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

堆分配什么的语法? 的相关文章

  • D 中异常处理的开销

    在 D2 编程语言中 使用异常处理对性能有何影响 尤其 如果我不写异常处理代码怎么办 如果我这样做了 但没有抛出任何异常怎么办 如果我这样做并且抛出异常怎么办 异常处理是否会导致错过任何优化机会 是否可以像许多 大多数 C 实现中那样禁用异
  • ANTLR 中的浮点文字和范围参数

    我正在开发 D 语言的解析器 当我尝试添加 切片 运算符规则时遇到了麻烦 你可以找到它的ANTLR语法here 基本上问题是 如果词法分析器遇到这样的字符串 1 2 它就会完全丢失 并且最终成为单个浮点值 因此像 a 10 这样的字符串的后
  • OpenGL 纹理映射顽固地拒绝工作

    我正在用 D 编程语言使用 SDL 和 OpenGL 编写 2D 游戏 目前它只是尝试将纹理映射的四边形渲染到屏幕上 问题是 整个纹理映射部分似乎不太工作 尽管纹理显然加载得很好 分配了一个非零纹理编号 不会导致 glGetError 返回
  • 如何从头开始创建/编写一个简单的 XML 解析器?

    如何从头开始创建 编写一个简单的 XML 解析器 我想知道什么是简化的基本英语步骤 而不是代码示例 一个好的解析器是如何设计的 我知道正则表达式不应该在解析器中使用 但是正则表达式在解析 XML 中的作用有多大 推荐使用什么数据结构 我应该
  • 实例化 redBlackTree 模板时出错

    我在用字符实例化 RedBlackTree 容器时遇到问题 但它可以与整数一起使用 import std stdio import std container void main auto r1 redBlackTree int works
  • 延迟读取 D 中的文件

    我正在用 D 编写一个目录树扫描函数 它尝试将 grep 和 file 等工具结合起来 并且仅当文件中的内容满足条件时才对文件中的内容进行条件 grepnot匹配一组指示文件类型的魔术字节 例如 ELF 图像等 在最小化文件 io 方面 使
  • 与平台无关的文件锁定?

    我正在进行一项计算量非常大的科学工作 时不时地会得出结果 这项工作基本上就是多次模拟同一件事 因此它被分配到使用不同操作系统的多台计算机上 我想将所有这些实例的输出定向到同一个文件 因为所有计算机都可以通过 NFS Samba 查看相同的文
  • 如果 main 为 void,D 如何在成功时返回 0,在失败时返回非零?

    在 D 中 main函数定义为 void main perhaps some args but I do not remember 我确信这个函数在成功时返回零 在失败时返回非零 但它被定义为不返回任何内容 其背后的逻辑是什么 Alexan
  • 为什么线程本地存储这么慢?

    我正在为 D 编程语言开发一个自定义标记释放样式的内存分配器 它通过从线程局部区域进行分配来工作 与代码的其他相同的单线程版本相比 线程本地存储瓶颈似乎导致从这些区域分配内存的速度大幅减慢 50 即使在将我的代码设计为每次分配仅进行一次 T
  • std.regex.regex 的返回值?

    我正在尝试编写一个函数 它接受一个输入字符串 一个正则表达式 由std regex regex来自原始字符串 和错误消息字符串 并尝试使用正则表达式匹配输入字符串中的某些内容 如果没有匹配则显示错误消息 到目前为止我想出了以下签名 stri
  • 将 SQLite 与 DMD 静态链接 (Windows x86)

    我尝试与 sqlite3 静态链接但没有成功 我正在使用 etc c sqlite3 标头和 sqlite3 合并 为了创建 lib 文件 我尝试了 VC 和 MinGW gcc 它们都成功编译了源文件 但它们都生成 COFF 对象格式 D
  • D的语法真的是上下文无关的吗?

    几个月前我在 D 新闻组上发布了这个问题 但由于某种原因 答案从未真正说服我 所以我想我应该在这里问 D 的语法显然是上下文无关的 http www digitalmars com d 2 0 template comparison htm
  • D 中是否有相当于 C++ 的 Future/Promise ?

    D 世界中是否存在 C 世界中的未来 承诺等价物 当然有标准并行度 http dlang org phobos std parallelism html但它并不完全具有承诺 未来组合的功能 没有相当于获取未来或设置结果或异常的功能 您也不能
  • Tango 的未来与 D1 的停产

    知道D1 will be discontinued effective December 31 2012 鉴于官方发行版位于 D1 之下 是否还值得继续使用 Tango 如果您谈论的是一旦 D1 的官方支持消失 是否值得继续使用 Tango
  • 无法从 D 中的 std.range 中切片 Take!R?

    我正在尝试使用切片运算符从 std range 获取 take 函数的返回值的切片 我的代码 auto tempChunk a b c d auto a tempChunk take 3 writeln a 0 2 由于本例中的 Take
  • mpi.h:使用未定义的类型?

    我正在尝试将 OpenMPI 的 mpi h 的重要部分翻译为 D 编程语言 以便我可以从 D 调用它 HTOD 根本不起作用 我无法理解以下代码段 typedef struct ompi communicator t MPI Comm O
  • 在 GTK+ (gtkD) 中处理按键

    我正在玩gtkD http www dsource org projects gtkd GTK 的 D 绑定 我有一个window对象 实例gtk MainWindow 我想处理它的按键 How 如何处理特殊键 例如箭头键 pgup pgd
  • 堆分配什么的语法?

    是否有语法 模板或函数允许我将任何值本质上转换为指向该值的指针 IE 将其复制到GC堆并返回指向它的指针 new 并不适用于所有类型 std experimental allocator 不适用于 ctfe 并且两者似乎都在指向委托时遇到了
  • D 是否足够强大来满足这些功能?

    很长一段时间以来 我一直想设计一种将可扩展性与效率 以及安全性 易用性等 结合起来的编程语言 最近我重新发现了 D 我想知道 D 2 0 是否正是我想要自己打造的语言 我最喜欢的是元编程的潜力 理论上 D可以吗traits http dla
  • 声明常量 string[char] AA 的语法是什么?

    以下声明 const string char AA1 a fkclopel b poehfftw void main string args 给我 C temp 0186F968 d 1 27 错误 非常量表达式 a fkclopel b

随机推荐

  • 检测到通过 ChromeDriver 启动的 Chrome 浏览器

    我正在尝试在 python 中使用 selenium chromedriver 来访问 www mouser co uk 网站 然而 从第一次拍摄开始 它就被检测为机器人 有人对此有解释吗 此后我使用的代码 options Options
  • 用于检查 Apache Camel XML 中字符串的 JSONPath 表达式

    假设我有一个简单的 json 文件 如下所示 log host blah severity INFO system 1 我正在使用 Apache Camel 它是 Spring XML 来处理和路由 json 文件 我的路由代码看起来像这样
  • C# 中 DLL 和命名空间的关系

    这里有一个高级问题 今天我花了很多时间自学基本的高级概念 例如 API 静态和动态库 DLL 以及 C 中的编组 获得所有这些知识让我想到了一个看起来非常基本的问题 并且可能表明我对这些概念的理解存在漏洞 我知道的 DLL 可能包含类 这些
  • 通过SOCKS代理连接Kafka

    我有一个在 AWS 上运行的 Kafka 集群 我想用标准连接到集群卡夫卡控制台消费者从我的应用程序服务器 应用程序服务器可以通过 SOCKS 代理访问互联网 无需身份验证 如何告诉 Kafka 客户端通过代理进行连接 我尝试了很多事情 包
  • ajaxStop() 不触发

    这是不起作用的代码 document ajaxStop function this unbind ajaxStop prevent running again when other calls finish Display everythi
  • 如何在 Firebase 远程配置中从 JSON 获取值

    我是 Android 应用开发和 Firebase 的新手 我想知道如何获取存储在 Firebase 远程配置中的 JSONArray 文件中的值 String 和 Int 我使用 Firebase Remote Config 的最终目标是
  • 如何使用 BeautifulSoup 从表中选择特定行?

    So I have a question related to a previous question but I realized I needed to go one level more to get an 11 digit NDC
  • Facebook iPhone SDK:上传图像时显示进度条

    我想在我的 iPhone 应用程序将图像上传到 Facebook 时显示进度条 是否可以 我可以对我发出的每个 FBRequest 执行此操作吗 我还使用 FBRequest 来检查扩展权限 有时需要花费很多时间 谢谢 对于进度条 您可以做
  • Service Fabric 有状态服务远程处理 V2

    我有一个由无状态服务调用的有状态服务 在 Visual Studio 15 4 上运行的 Net Standard Asp net Core 2 0 中 我无法使 Service Remoting V2 工作 适用于 V1 的有状态服务中的
  • 将文件从不同目录复制到公共目录

    我有很多目录 其中包含 c文件 我想复制全部 c使用 shell 脚本将不同目录中的文件复制到单个目录 find name c exec cp t tmp 启动当前目录中的所有项目 递归 获取名称结尾的项目 c 将这些项目复制到 tmp 如
  • 致命:.git/info/refs 无效:这是一个 git 存储库吗?

    我有一个托管在 Assembla 上的 Git 存储库 我正在尝试执行以下操作 git push u origin master 我一遍又一遍地收到以下错误 fatal https url repo name git info refs n
  • 如何引用下一行的数据?

    我正在 PostgreSQL 9 2 中编写一个函数 对于股票价格和日期的表 我想计算每个条目较前一天的百分比变化 对于最早一天的数据 不会有前一天 因此该条目可以简单地为 Nil 我知道WITH声明可能不应该高于IF陈述 到目前为止 这就
  • 是否可以将新表和旧表从触发器传递到 MySQL 中的过程中?

    是否可以将新表和旧表从触发器传递到 MySQL 中的过程中 我怀疑不会 因为没有过程接受的表这样的数据类型 有什么可能的解决方法吗 理想情况下它看起来像这样 CREATE TRIGGER Product log AFTER UPDATE O
  • 依赖注入来解决与运行时数据的依赖关系

    我正在为我的 Web api 项目使用简单的注入器 我有一项服务需要会话令牌才能实例化 public class CustomerService public CustomerService Auth auth IRepositoryFac
  • 将 transaction.commit_manually() 升级到 Django > 1.6

    我继承了为 Django 1 4 编写的应用程序的一些代码 我们需要更新代码库以使用 Django 1 7 并最终更新到 1 8 作为下一个长期支持版本 在一些地方它使用旧风格 transaction commit manually and
  • 如何使用 $resource 获取状态代码?

    我提出请求的工厂在这里 angular module myapp factory testResponse http resource AppConfig routeParams rootScope function http resour
  • 从 iOS 13 开始安排 iOS 后台任务

    我正在实现用于更新数据的BackgroundTasks 框架 但我遇到了以下问题 无法计划刷新App 错误域 BGTaskSchedulerErrorDomain代码 1 空 无法安排数据提取 Error Domain BGTaskSche
  • 在 Pandas 中,如何从基于另一个数据框的数据框中删除行?

    我有 2 个数据框 一个名为 USERS 另一个名为 EXCLUDE 他们都有一个名为 电子邮件 的字段 基本上 我想删除 USERS 中包含 EXCLUDE 中包含电子邮件的每一行 我该怎么做 您可以使用boolean indexing
  • 在 igraph 中为社区分配颜色

    我在 igraph 中使用 fastgreedy community 检测算法在 R 中生成社区 代码返回 12 个社区 但是在绘图时很难识别它们 因为它返回的图的颜色数量有限 我怎样才能用十二种不同的颜色绘制这个图表 l2 lt layo
  • 堆分配什么的语法?

    是否有语法 模板或函数允许我将任何值本质上转换为指向该值的指针 IE 将其复制到GC堆并返回指向它的指针 new 并不适用于所有类型 std experimental allocator 不适用于 ctfe 并且两者似乎都在指向委托时遇到了