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

标签 c++ stl containers constexpr c++20

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

最佳答案

这两篇论文很大程度上依赖于P0784 ,其中讨论了编译时分配的工作方式。

不完整的答案:

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

关于c++ - C++20 constexpr 容器将如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57163315/

相关文章:

linux - 如何为docker中正在运行的容器分配名称?

kubernetes - Pod 相对于容器的优势

c++ - 无法打开文件 : . ./sysdeps/posix/system.c

c++ - Qt 4.7 在 Windows 上使用 Eclipse?

c++ - PostThreadMessage 不起作用

c++ - std::list、std::vector 方法和 malloc()

c++ - 我在这个递归中哪里错了

c++ - 容器元素可以使用 `std::pmr::map` 的分配器进行分配吗?

c++ - 避免 set 创建 Comparator 对象的实际拷贝是否合法

bash - Docker容器- “Docker run”附加bash命令