我想要求澄清标准为节点句柄类型指定的具体内容。我阅读了 cppreference 信息,其中指定 Node-handle 的默认构造函数必须声明为 constexpr,但任何其他构造函数、析构函数或成员函数都不存在此特定内容。
做出这样选择的原因是什么?
在C++17中,动态内存分配不能在编译时发生。非空
node_handle
引用的节点是动态内存分配的结果。因此,它们永远无法在编译时工作,因此使它们 constexpr
是不可能的。
这在 C++20 中仍然存在,因为关联容器与
constexpr
分配支持不兼容。