How to set a boost::optional back to an uninitialized state?

Guy Sirton picture Guy Sirton · Jan 22, 2012 · Viewed 26.1k times · Source

How can I "reset"/"unset" a boost::optional?

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
}

Answer

Benjamin Lindley picture Benjamin Lindley · Jan 22, 2012
x = boost::none;