Eğer doğru bir şekilde anlarsam, bir paylaşımlı_ptr (boost, tr1, std, neyse), yeni ayrılmış bir nesnenin bir işaretçisi ile başlatıldığında, paylaşımlı_ptr kurucusu, işaretçi için bir referans sayımını tutmak için az miktarda bellek ayırır. yönetir. Bu ayırma başarısız olursa ne olur? Aşağıdaki kodda: Bir shared_ptr'nin yapıcısı başarısız olursa ne olur?
class my_class {};
void my_func(shared_ptr<my_class> arg);
int main(int argc, char* argv[])
{
my_func(shared_ptr<my_class>(new my_class()));
return 0;
}
...
my_class
nesne Shared_ptr referans sayımı için bellek ayrılamadı başarısız olursa sızdırılmış olacak? Veya shared_ptr'nin kurucusu nesneyi silmek için sorumluluk alıyor mu?
Şerefe. Google'ı ateşledim ama bir cevap bulamadım. Bu günlerden birinde kaynağı kontrol etmeyi öğreneceğim - yani standart. :-) – bythescruff