2016-04-14 27 views
1

C++ 'da int (dosya tanıtıcısı) saymaya başvurmam gerekiyor. Referans sayımı için bir şablon olup olmadığını görmek için yeni C++ 11 ve C++ 14 dokümanlarını inceliyordum. Son birkaç yılda C++ 'ya eklenen yeni şeylerin bir parçası olarak gerçekten mevcut değil mi, yoksa dokümanlardaki özledim mi?C++ şablonu yerel sayıları referans olarak göster

Not Bu StackOverflow sorusunun bir parçası olarak kendi çözümlerini sunacak kişileri aramıyorum! Sadece kullanmam gereken bir “resmi” çözüm olup olmadığını bilmek istiyorum.

+1

İşaretçi-ness olmadan "shared_ptr" varyasyonunu mu arıyorsunuz? – immibis

+0

@immibis İşaretçi olmayan türler için tam olarak referans sayımı. Benim durumumda, açık (3) ile elde edilen bir dosya tanıtıcısı. –

+2

"shared_ptr" öğesini int'nin adresiyle ve int'yi dinamik olarak ayırmak istemiyorsanız özel bir silme işleviyle kullanabilirsiniz. –

cevap

6

Eğer shared_ptr kullanmak niyetinizle tutarlı ise (referans sayısı 0 olduğunda dosyayı imha edin) o zaman bu yol olacaktır. Orijinal paylaşılan göstericiyi, kullanım durumunuzda bir dosya silme işlemi olabilen özel bir yıkıcıyla oluşturabilirsiniz. Buna erişmek istediğinizde de bir use_count üye işlevi vardır.

+0

Yani cevap "hayır, yapmak istediklerim için C++ 'da mükemmel bir şablon çözümü yok." Ama evet, ihtiyacım olanı uygulamak için 'shared_ptr' kullanarak bitirdim. –

İlgili konular