usage of boost::optional