auto_ptrを学習しようとしているので、以下のコードを書きましたが、結果は
..\src\main.cpp:23: error: no match for 'operator=' in 'p1 = source()()'
私は何を間違えましたか?返された auto_ptr をどのように割り当てますか?
#include <stdio.h>
#include <memory>
using namespace std;
auto_ptr<int> source() {
int *i = new int();
*i = 100;
return auto_ptr<int>(i);
}
int main() {
std::auto_ptr<int> p1, p2;
p1 = p2;
p1 = source();
return 0;
}