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

时间:2018-06-23 17:10:27

标签: c++ c++20

作为一个示例,给定constexpr字符串文字,我想将其转换为另一个constexpr数据结构。由于此转换是完全无副作用的,因此,我希望有一种在编译时执行此操作的方法(没有预处理器,但具有标准的C ++语言功能)。

现在,我敢肯定,我曾经读过一篇有关C ++ 2a(或更高版本)可能在将来出现的功能的补充,将允许在constexpr函数中进行动态内存分配,这肯定会解决我的问题。 -但我再也找不到该文章了。

是否已经有一种方法可以在C ++中的constexpr上下文中执行动态内存分配,或者没有人知道哪篇论文提出了这一建议?

1 个答案:

答案 0 :(得分:5)

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