I would have thought that std::optional would have been a likely candidate for use with the Pop() method?