看看下面的例子,我們解析數據,並將結果傳遞到下一個功能移動:如何從標準::可選<T>
Content Parse(const std::string& data);
void Process(Content content);
int main()
{
auto data = ReadData();
Process(Parse(data));
}
現在讓我們用std::optional
處理失敗的分析步驟中更改代碼:
optional<Content> Parse(const std::string& data);
void Process(Content content);
int main()
{
auto data = ReadData();
auto content = Parse(data);
if (content)
Process(move(*content));
}
是否有效從optional<T>::value()
移動?如果std::optional
可以,那麼它是否也適用於boost::optional
?
我會認爲這會很好。包含的值在移動後應該處於有效但未指定的狀態。 –