8

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

现在,我确信有一次我读到了 C++2a(或更高版本)的一个潜在的未来特性,它允许在 constexpr 函数中进行动态内存分配,这肯定是我的问题的解决方案。- 但我找不到那个告诉我的文章了。

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

4

1 回答 1

6

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

于 2020-01-08T17:59:52.713 回答