| 1 | 13a14,15
|
|---|
| 2 | > #include <boost/type_traits/is_base_of.hpp>
|
|---|
| 3 | > #include <boost/utility/enable_if.hpp>
|
|---|
| 4 | 45a48,51
|
|---|
| 5 | >
|
|---|
| 6 | > // Implicit conversion from child-type reference_wrapper
|
|---|
| 7 | > template <typename FromT>
|
|---|
| 8 | > reference_wrapper(reference_wrapper<FromT> const& wrapper,typename boost::enable_if<boost::is_base_of<T,FromT> >::type* =0): t_(wrapper.t_) {}
|
|---|
| 9 | 51a58,61
|
|---|
| 10 | >
|
|---|
| 11 | > // Implicit conversion to parent-type references
|
|---|
| 12 | > template <typename ToT>
|
|---|
| 13 | > operator typename boost::enable_if<boost::is_base_of<ToT,T>,ToT>::type () const { return *t_ ; }
|
|---|
| 14 | 55a66
|
|---|
| 15 | > template <typename OtherT> friend class reference_wrapper;
|
|---|