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;
|
---|