unique_ptr Dönüş const merak ediyorum bir hata alıyorum neden:C++ derlerken
const std::unique_ptr<int> get() {
return std::make_unique<int>(10);
}
int main() {
const std::unique_ptr<int> value = get();
return EXIT_SUCCESS;
}
aşağıdaki hata alıyorum: Ben get
imzadan const
kaldırdığınızda
main.cpp: In function ‘int main()’:
main.cpp:10:44: error: use of deleted function ‘std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = int; _Dp = std::default_delete<int>]’
const std::unique_ptr<int> value = get();
Bu doğru derler .
Sabit bir unique_ptr döndürmenin herhangi bir yolu var mı?
Gerçek 'std :: unique_ptr' nesnesinin sabit olması mı, yoksa veriye mi işaret ediliyor? –
Evet, gerçek 'std :: unique_ptr' nesnesinin sabit olması gerekiyordu. – jean553
Niçin değiştirilebilecek veriler için sürekli bir işaretçiye ihtiyacınız var? Bu tuhaf. –