Hacker News new | ask | show | jobs
by 7jjjjjjj 286 days ago
With destructive moves, you can end an object's lifetime whenever you want.
1 comments

How would I use such a socket class as a member variable? How do I reopen the socket?
Reopen by constructing and assigning a new socket.
So I essentially have to wrap it in something like std::optional. Well, that's certainly one way to write a socket class, but I'd say it's not idiomatic C++. (I have never seen a socket class being implemented like that.)
You don't need optional in this case, the assignment would just destroy the old socket and immediately move the new one in its place.
Well, reopening a socket implies that I have manually closed the socket, which does require an optional with your implementation.