SORU
26 Temmuz 2011, Salı


Neden unique_ptr bir tür parametresi shared_ptr değil süre olarak deleter var't?

std::unique_ptr şablon var iki parametre: pointee türü ve deleter türü. Bu ikinci parametre varsayılan değeri varsa, genellikle sadece std::unique_ptr<int> gibi bir şey yazmak.

std::shared_ptr şablonun tek parametresi vardır: pointee türü. Ama deleter türü sınıf şablonunda olsa bile bu özel bir deleter de kullanabilirsiniz. Her zamanki uygulama tipi silme teknikleri bunu yapmak için kullanır.

Aynı fikir std::unique_ptr için kullanılan bir nedeni var mı?

CEVAP
26 Temmuz 2011, Salı


Nedeni de shared_ptr hakem saymaya zaten açık denetim bloğu ihtiyaçları ve deleter yapıştırıyorum üstüne o kadar büyütülecek bir şey değil. unique_ptr ancak herhangi bir ek yük gerektirmez, ve sevilmeyen - sıfır-yük bir sınıf olmalı olacağını da sözlerine ekledi. unique_ptr statik olması gerekiyordu.

Her zaman eğer davranışları - örneğin, unique_ptr<T, std::function<void(T*)>> geçmişte yaptığım bir şey olabilir isterseniz üstüne kendi tür silme ekleyebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CaliforniaMetin

    CaliforniaMe

    3 ŞUBAT 2013
  • Hak5

    Hak5

    7 EYLÜL 2005
  • Semantic Mastery

    Semantic Mas

    30 EKİM 2013