15 #if !defined (_INC_MSCLR_AUTO_GCROOT)
17 #ifndef __cplusplus_cli
18 #error ERROR: msclr libraries are not compatible with /clr:oldSyntax
29 template<
typename _element_type>
43 template<
typename _element_type>
60 template<
typename _element_type>
90 template<
typename _other_type>
118 template<
typename _other_type>
145 template<
typename _other_type>
152 _element_type
get()
const
181 template<
typename _other_type>
187 template<
typename _other_type>
198 void reset( _element_type _new_ptr =
nullptr )
200 if( _element_type(
m_ptr) != _new_ptr )
204 delete _element_type(
m_ptr);
212 _element_type _tmp_ptr =
m_ptr;
222 delete _element_type(
m_ptr);
231 return _element_type(
m_ptr) !=
nullptr;
239 template<
typename _element_type>
243 _left.
swap( _right );
248 #define _INC_MSCLR_AUTO_GCROOT
void swap(auto_gcroot< _element_type > &_left, auto_gcroot< _element_type > &_right)
Definition: auto_gcroot.h:240
System::String _safe_bool
Definition: safebool.h:37
reference_wrapper< _Ty > ref(_Ty &_Val) _NOEXCEPT
Definition: type_traits:1617
_element_type operator->() const
Definition: auto_gcroot.h:158
Definition: auto_gcroot.h:44
_auto_gcroot_ref(auto_gcroot< _element_type > &ref)
Definition: auto_gcroot.h:47
bool operator!=(_detail_class::_safe_bool) const
static _safe_bool const _safe_false
Definition: safebool.h:39
bool operator==(_detail_class::_safe_bool) const
auto_gcroot< _element_type > & attach(_detail::_auto_gcroot_ref< _element_type > &_right)
Definition: auto_gcroot.h:111
auto_gcroot< _element_type > & operator=(_detail::_auto_gcroot_ref< _element_type > &_right)
Definition: auto_gcroot.h:139
_element_type release()
Definition: auto_gcroot.h:210
auto_gcroot(_detail::_auto_gcroot_ref< _element_type > _right)
Definition: auto_gcroot.h:85
bool valid() const
Definition: auto_gcroot.h:228
static _safe_bool const _safe_true
Definition: safebool.h:38
auto_gcroot< _element_type > & m_ref
Definition: auto_gcroot.h:53
Definition: auto_gcroot.h:30
auto_gcroot< _element_type > & operator=(auto_gcroot< _element_type > &_right)
Definition: auto_gcroot.h:132
auto_gcroot< _element_type > & attach(auto_gcroot< _element_type > &_right)
Definition: auto_gcroot.h:103
bool operator!() const
Definition: auto_gcroot.h:170
auto_gcroot< _element_type > & attach(auto_gcroot< _other_type > &_right)
Definition: auto_gcroot.h:119
auto_gcroot< _element_type > & attach(_element_type _right)
Definition: auto_gcroot.h:96
auto_gcroot(auto_gcroot< _other_type > &_right)
Definition: auto_gcroot.h:91
auto_gcroot< _element_type > & operator=(_element_type _right)
Definition: auto_gcroot.h:126
gcroot< _element_type > m_ptr
Definition: auto_gcroot.h:235
~auto_gcroot()
Definition: auto_gcroot.h:218
void reset(_element_type _new_ptr=nullptr)
Definition: auto_gcroot.h:198
auto_gcroot(_element_type _ptr=nullptr)
Definition: auto_gcroot.h:73
auto_gcroot< _element_type > & operator=(auto_gcroot< _other_type > &_right)
Definition: auto_gcroot.h:146
void swap(auto_gcroot< _element_type > &_right)
Definition: auto_gcroot.h:193
void swap(gcroot< T > &_right)
Definition: gcroot.h:109
auto_gcroot(auto_gcroot< _element_type > &_right)
Definition: auto_gcroot.h:79