Hatalar, hatalar, sorular - sayfa 2419
Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Dile bir r-değeri olarak bir argüman iletme yeteneği ekleme konusundaki düşünceleriniz nelerdir? Bu, tüm sorunları hemen çözecek ve her tür için evrensel kapsayıcılar oluşturmanıza olanak sağlayacaktır.
gibi? ) evrensel kaplar için bağlantılar ve oklar gereklidir ve hepsi bu kadar değil.
ve buradaki ortalama kullanıcı r-değeri yapacak kişi değil.
Dile bir r-değeri olarak bir argüman iletme yeteneği ekleme konusundaki düşünceleriniz nelerdir? Bu, tüm sorunları hemen çözecek ve her tür için evrensel kapsayıcılar oluşturmanıza olanak sağlayacaktır. Özellikle, yukarıdaki yöntem r değeri için aşırı yüklenecektir:
Bu tam olarak tüm STL kapsayıcılarında uygulanan şeydir.
Ve ikinci artı: move yapıcılarını ayarlamanıza izin verecektir. Şimdi bu, özellikle unique_ptr akıllı işaretçilerin ve belirli bir benzersiz kaynağı yalnızca kendi içlerinde depolamak üzere tasarlanmış diğer sınıfların uygulanması için de çok eksiktir, yani. normal kopya kurucuları onlar için kabul edilemez.
O zaman bir parametreyi referans olarak geçirmenin amacı nedir?
O zaman bir parametreyi referans olarak geçirmenin amacı nedir?
O zaman bir parametreyi referans olarak geçirmenin amacı nedir?
Hangi linkten bahsettiğinizi tam anlayamadım. Başlangıçta, l-değeri referanslarının (MQL'de mevcuttur) tüm ihtiyaçları karşılamadığı konuşuluyordu, bu da böyle bir fonksiyona bir sabit veya ifade değeri geçirmenin imkansızlığı ile kanıtlandı. Bu amaçlar için, diğer tüm türleri kabul edecek bir r-değeri referansına ihtiyaç vardır. Böylece, r-değeri ve l-değeri için iki aşırı yüklenmiş fonksiyonun kombinasyonu, kökenlerine bakılmaksızın her tür argümanın kabul edilmesini sağlayacaktır.
Sabitin herhangi bir yerde depolanmadığını, ancak anında oluşturulduğunu söylemeniz, bunun bir l değeri değil (C++ 'dan farklı olarak) bir r değeri olarak iletilmesi gerektiği anlamına gelir. Hangi biçimde yorumlandığı konusunda temel bir fark yoktur, asıl şey bir işlevde kabul edilebilmesidir.
Sabitin herhangi bir yerde depolanmadığını, ancak anında oluşturulduğunu söylemeniz, bunun bir l değeri değil (C ++ 'dan farklı olarak) bir r değeri olarak iletilmesi gerektiği anlamına gelir. Hangi biçimde yorumlandığı konusunda temel bir fark yoktur, asıl şey bir işlevde kabul edilebilmesidir.
Aslında, bir r-değeri referansı, hareketin yapılacağı bir nesnenin varlığını ima eder. onlar. geçici nesne aynı şekilde oluşturulmalıdır.
Aslında, bir r-değeri referansı, hareketin yapılacağı bir nesnenin varlığını ima eder. onlar. geçici nesne aynı şekilde oluşturulmalıdır.
Eh, elbette, nesne her zaman orada bir yerdedir. Bu nesnenin anında yaratıldığını yazdım, yani. geçici.
Ama Slava'nın ne istediğini anlıyor gibiyim. Değerine göre alabilecekken neden geçici bir nesneyi referans olarak alın demek istedi.
Yani mesele şu ki, bir referans için ve bir kapsamdaki bir değer için bir fonksiyonu aynı anda aşırı yüklemek imkansız:
bu da evrensel çözümler yazmayı sorunlu hale getiriyor. Ve değeri r-değeri ile değiştirerek, çalışan bir sürüm elde ederiz:
template < typename T> void f(T && ) { } template < typename T> void f(T const &) { }
Değerine göre alabilecekken neden geçici bir nesneyi referans olarak alın demek istedi.
çünkü
ve bir şeyi değerden ziyade referansa göre iletmek genellikle daha uygun olduğu için.
ve eğer yöntem şablon ise (içkinin aslında ondan çıktığı), o zaman mevcut davranış normal yazmaya izin vermiyor.
ve eğer yöntem şablon ise (içkinin aslında ondan çıktığı), o zaman mevcut davranış normal yazmaya izin vermiyor.
bu da evrensel çözümler yazmayı sorunlu hale getiriyor. Ve değeri r-değeri ile değiştirerek, çalışan bir sürüm elde ederiz:
tam olarak değil )
Hareket semantiği, taşınan nesneye iç kısımları çıkarmamasını söylemeyi içerir. nesne const ise, değiştirilebilir bir sınıf üyesi gereklidir, mql bunu desteklemez
tam olarak değil )
Hareket semantiği, taşınan nesneye iç kısımları çıkarmamasını söylemeyi içerir. nesne const ise, değiştirilebilir bir sınıf üyesi gereklidir, mql bunu desteklemez