auto_ptr::operator auto_ptr_ref<Other>
캐스팅 된 auto_ptr 에 auto_ptr_ref.
template<class Other>
operator auto_ptr_ref<Other>( ) throw( );
반환 값
형식 캐스팅 연산자 반환 auto_ptr_ref<기타> (*이).
예제
// auto_ptr_op_auto_ptr_ref.cpp
// compile with: /EHsc
#include <memory>
#include <iostream>
#include <vector>
using namespace std;
class C{
public:
C(int _i) : m_i(_i){
}
~C(){
cout << "~C: "<< m_i <<"\n";
}
C &operator =(const int &x){
m_i = x;
return *this;
}
int m_i;
};
void f(auto_ptr<C> arg ){
};
int main()
{
const auto_ptr<C> ciap ( new C(1) );
auto_ptr<C> iap ( new C(2) );
// Error: this implies transfer of ownership of iap's pointer
// f(ciap);
f(iap); // compiles, but gives up ownership of pointer
// here, iap owns a destroyed pointer so the following is bad:
// *iap = 5; // BOOM
cout << "main exiting\n";
}
요구 사항
헤더: <memory>
네임 스페이스: std