Как я могу «сбросить»/«unset» a boost::optional
?Как установить boost :: необязательный возврат в неинициализированное состояние?
optional<int> x;
if(x)
{
// We won't hit this since x is uninitialized
}
x = 3;
if(x)
{
// Now we will hit this since x has been initialized
}
// What should I do here to bring x back to uninitialized state?
if(x)
{
// I don't want to hit this
}
Это немного для меня загадка, почему нет 'опциональный :: clear' или' опциональный :: empty'. – pmr
Наверное, потому что там совершенно не обязательно быть одним. –
@LightnessRacesinOrbit: Можете ли вы уточнить? Я рассматриваю это в контексте необязательных переменных-членов, где вы хотите по существу сбросить часть состояния объекта. Возможно, есть лучший способ сделать это. –