boost::optional pointer support