Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Paylaşılan işaretçi parametresi rvalue başvurusu tarafından geçirilir. Bunun yerine değere göre geçirin.
C++ Temel Yönergeleri: R.34: Paylaşılan sahipliği ifade etmek için shared_ptr<pencere öğesi> parametresi alma
Paylaşılan bir işaretçiyi rvalue başvurusuyla geçirmek nadiren gereklidir. Paylaşılan işaretçi türünün kendisi için taşıma semantiğinin bir uygulaması olmadığı sürece, paylaşılan işaretçi nesneleri değere göre güvenli bir şekilde geçirilebilir. Rvalue başvurusunun kullanılması, benzersiz işaretçinin çağırandan çağırana açıkça benzersiz sahiplik aktardığından daha uygun olduğunu gösteren bir gösterge de olabilir.
Açıklamalar
Bu denetim, paylaşılan işaretçiler
std::shared_pointergibi davranma olasılığı olan ve kullanıcı tanımlı türleri tanır. Kullanıcı tanımlı paylaşılan işaretçiler için aşağıdaki özellikler beklenir:aşırı başvuru veya üye erişim işleçleri (genel ve silinmemiş);
kopyalama oluşturucu veya kopyalama atama işleci (genel ve silinmemiş);
silinmemiş veya varsayılan olarak ayarlanmamış bir genel yıkıcı. Boş yıkıcılar yine de kullanıcı tanımlı olarak sayılır.
Örnekler
Sorgulanabilir oluşturucu iyileştirmesi:
action::action(std::shared_ptr<transaction> &&t) noexcept // C26416
: transaction_(std::move(t))
{}
action::action(std::shared_ptr<transaction> &t) noexcept // also C26417 LVALUE_REF_SHARED_PTR
: transaction_(t)
{}
Sorgulanabilir oluşturucu iyileştirmesi - basitleştirilmiş:
action::action(std::shared_ptr<transaction> t) noexcept
: transaction_(std::move(t))
{}