C++具有动态内存分配的 constexpr 函数

C++ constexpr functions with dynamic memory allocations

本文关键字:constexpr 函数 分配 内存 动态 C++      更新时间:2023-10-16

作为一个说明性的例子,给定一个constexpr字符串文字,我想将其转换为另一个constexpr数据结构。由于这种转换纯粹是无副作用的,我希望有一种在编译时做到这一点的方法(没有预处理器,但具有标准的C++语言功能(。

现在,我确信在某一时刻,我读到了有关 C++2a(或更高版本(的潜在未来功能添加的信息,该功能允许在 constexpr 函数内进行动态内存分配,这绝对是我问题的解决方案。 - 但我找不到那篇告诉我的文章了。

有没有办法在 constexpr 上下文中执行动态内存分配 C++,或者有谁知道哪篇论文提出了这个建议?

此类功能计划于20 C++发布。但是,分配的内存不得泄漏到运行时中。如果您的 constexpr 数据结构需要保存分配的内存,这可能会有问题。您可以在 P0784 中找到有关该功能以及非瞬态分配存在问题的原因的更多信息。