具有动态内存分配的 C++ constexpr 函数
C++ constexpr functions with dynamic memory allocations
作为说明性示例,给定一个 constexpr 字符串文字,我想将其转换为另一个 constexpr 数据结构。由于这种转换完全没有副作用,我希望有一种方法可以在编译时做到这一点(没有预处理器,但具有标准的 C++ 语言特性)。
现在,我确信我曾经读过关于 C++2a(或更高版本)的潜在未来功能,将允许在 constexpr 中进行动态内存分配功能,那肯定是我的问题的解决方案。 - 但我找不到那篇告诉我的文章了。
是否已经有一种方法可以在 C++ 的 constexpr 上下文中执行动态内存分配,或者有人知道哪篇论文提出了这个建议吗?
此类功能计划用于 C++20。但是,分配的内存不得泄漏到运行时中。如果您的 constexpr 数据结构需要保存分配的内存,这可能会有问题。您可以在 P0784.
中找到有关该功能的更多信息以及非瞬时分配问题的原因。
作为说明性示例,给定一个 constexpr 字符串文字,我想将其转换为另一个 constexpr 数据结构。由于这种转换完全没有副作用,我希望有一种方法可以在编译时做到这一点(没有预处理器,但具有标准的 C++ 语言特性)。
现在,我确信我曾经读过关于 C++2a(或更高版本)的潜在未来功能,将允许在 constexpr 中进行动态内存分配功能,那肯定是我的问题的解决方案。 - 但我找不到那篇告诉我的文章了。
是否已经有一种方法可以在 C++ 的 constexpr 上下文中执行动态内存分配,或者有人知道哪篇论文提出了这个建议吗?
此类功能计划用于 C++20。但是,分配的内存不得泄漏到运行时中。如果您的 constexpr 数据结构需要保存分配的内存,这可能会有问题。您可以在 P0784.
中找到有关该功能的更多信息以及非瞬时分配问题的原因。