C ++ 20 constexpr容器将如何工作?

Fel*_*bek 3 c++ containers stl constexpr c++20

作为constexpr std::stringconstexpr std::vector已被接受为C ++ 20,如何将这些被使用?链接的文件在细节上很短。我们是否需要指定特殊的constexpr分配器,使编译时字符串/向量与其常规等效项不兼容?

Mar*_*low 6

这两篇论文在很大程度上取决于P0784,它讨论了编译时的分配如何工作。

答案不完整:

  • std::allocator会工作。
  • 跟踪所有分配,并且必须在编译完成之前将其释放。这意味着您可以在编译时进行操作,但是不能在运行时进行初始化string和使用vector变量。(就我个人而言,我认为很有可能在该标准的将来版本中取消此限制-但这只是我的意见。)