bool fcppt::operator<( fcppt::shared_ptr< Type1, Deleter > const &_a, fcppt::shared_ptr< Type2, Deleter > const &_b ) { return _a.std_ptr() < _b.std_ptr(); }
fcppt::shared_ptr< Type, Deleter >::shared_ptr( fcppt::shared_ptr< Other, Deleter > const &_other ) : impl_( _other.std_ptr() ) { }
fcppt::shared_ptr< Type, Deleter >::shared_ptr( fcppt::shared_ptr< Other > const & _other, pointer const _data ) : impl_( _other.std_ptr(), _data ) { static_assert( std::is_same< Deleter, fcppt::default_deleter >::value, "storing a different pointer in a shared_ptr only works with default_deleter" ); }