我用 C++ 和模板类实现了 STL 队列数据结构。我面临的问题是该模板 ADT 的 emplace() 方法的实现。在 emplace 中,我们使用接收参数通过构造函数构造特定数据类型的对象。我无法以所有数据类型的通用方式实现使用这些接收参数构造该对象的逻辑。谁能帮助实现其逻辑?
我认为只有一种方法就是进行硬编码,即。不是所有数据类型的通用实现。
您可以直接调用构造函数并在特定位置构造一个对象(例如,
p
):
::new (p) T(std::forward<Args>(args)...);
std::construct_at
基本上可以实现此目的。