[C++-sig] wrapping boost::optional