I was reading the code in folly::Optional for copy assignment and I am not clear how exactly the call to construct()
assigns a value to the optional. Specifically in construct()
how does this expression work?
new (const_cast<void*>(ptr)) Value(std::forward<Args>(args)...);