Roman Perepelitsa <roman.perepelitsa <at> gmail.com> writes:
>
> 2009/5/6 Roman Perepelitsa <roman.perepelitsa <at> gmail.com>
> It's less efficient, because all arguments will be copied. It's also more
typing, longer compilation times and more code generated.
>
>
> There is one more caveat. This approach does not work with polymorphic types
(you'll get slicing). I don't think there are any advantages in passing
boost::optional<T> compared to const T*.Roman Perepelitsa.
>
>
Thanks for the answer!
Is there a way to avoid the copy (and thus the slicing)? Perhaps using
boost::optional<T&> or boost::optional< boost::reference_wrapper<T> > ?