title: std::optional::value_or() - lazy argument evaluation
body: <p>Is it possible to evaluate <code>std::optional::value_or(expr)</code> argument in a lazy way, so the <code>expr</code> were calculated only in the case of having no value?</p>
  
  <p>If not, what would be a proper replacement?</p>