【发布时间】:2021-02-21 09:58:00
【问题描述】:
我正在阅读 copy assignment 的 folly::Optional 中的代码,但我不清楚对 construct() 的调用究竟是如何为可选项赋值的。具体在construct()这个表达式是如何工作的?
new (const_cast<void*>(ptr)) Value(std::forward<Args>(args)...);
【问题讨论】:
-
您已在此处链接了一个内部 FB 页面。可能想找到外部链接?
-
它在现有内存位置上使用
placement new。 -
您提供的链接不适用于复制构造函数,并且您引用的代码不存在,顺便说一句。
-
您可能感兴趣:en.cppreference.com/w/cpp/memory/construct_at。 Folly 似乎只是为 C++20 之前的代码提供了自定义版本(现在基本上是所有代码;)。
-
编辑链接指向外部的、公开可用的 folly::Optional 版本。