Öyleyse neden her zaman const'ı olabildiğince sık kullanmanız önerilir? Bana öyle geliyor ki const kullanmak C ++ 'da bir yardımdan daha fazla acı verici olabilir. Ama sonra tekrar, ben buna python perspektifinden geliyorum: eğer bir şeyin değiştirilmesini istemiyorsanız, onu değiştirmeyin. Bununla birlikte, işte birkaç soru: Görünüşe göre bir şeyi const …
C veya C ++ kodunuzda const-doğruluğunu zorlamanın sadece sürdürülebilirlik açısından iyi bir uygulama olmadığını, aynı zamanda derleyicinizin optimizasyonlar gerçekleştirmesine de izin verebileceğini defalarca okudum. Bununla birlikte, tam tersini de okudum - performansı hiç etkilemiyor. Bu nedenle, const doğruluğunun derleyicinize programınızın performansını iyileştirmede yardımcı olabileceği örnekleriniz var mı?
Diyelim ki böyle bir çağrılabilir türü var: struct mutable_callable { int my_mutable = 0; int operator()() { // Not const return my_mutable++; } }; Not mutable_callableolmayan bir const sahiptir operator()değiştirir üye değişkeni olduğunu ..... Şimdi varsayalım türümden bir std::functiondışarı: std::function<int()> foo = mutable_callable{}; Şimdi bunu yapabilirim: void invoke(std::function<int()> const& z) …
Eski bir kod parçası için bir sarıcı var. class A{ L* impl_; // the legacy object has to be in the heap, could be also unique_ptr A(A const&) = delete; L* duplicate(){L* ret; legacy_duplicate(impl_, &L); return ret;} ... // proper resource management here }; Bu eski kodda, bir nesneyi “çoğaltan” …