Próbowałem użyć std :: shared_pointer z deleterem. Próbowałem użyć funkcji członka jako deletera. Jednak nie mógł się skompilować. Kompilator dał mi komunikat o błędzie, ale nie mogłem zrozumieć, dlaczego to nie zadziałało. Czy ktoś wie, dlaczego to nie zadziałało? Dziękuję Ci bardzo.wskaźnik funkcji członka w konstruktorze
uproszczony kod jest następujący,
#include <memory>
class MemberFunctionPointerInConstructor {
public:
MemberFunctionPointerInConstructor(void) {
std::shared_ptr<int> a = std::shared_ptr<int>(new int(1), deleter); // this line makes a compiler error message
}
void deleter(int* value) {
delete value;
}
};
Komunikat o błędzie z kompilatora jest następująca,
error: invalid use of non-static member function
std::shared_ptr<int> a = std::shared_ptr<int>(new int(1), deleter);
^
Dziękuję bardzo.
Dziękuję Yam Marcovic. – mora