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
Belki de "normal uygulama" derken şablonlar üzerinde uygulamayı kastediyorsunuz.
Nasıl bir şey bu? Kalıplar derken neyi kastediyorsun? Programlama yaparken parmaklarınızla tuşlara basmanın özel bir çarpık yolu mu?
Eski derleme zamanı makro ikame yönteminin bir mirası olan şablonlar, aslında nesne yönelimli programlama için uygunluklarını uzun zaman önce kaybetmişlerdir.
Modern dillerde bu tür görevler çalışma zamanı araçları ile çözülür, örneğin C#'ta generics, dinamik tip tanıma RTTI ve değişken tiplerin kullanımı.
Elbette hala şablonları seven eski çocuklar var, ancak bir programcı olarak IMHO emekli olma zamanının geldiğinin bir işaretidir.
Eski derleme zamanı makro ikame yönteminin bir mirası olan şablonlar, aslında nesne yönelimli programlama ile ilgilerini çoktan kaybetmişlerdir.
Modern dillerde bu tür görevler çalışma zamanı araçları ile çözülür, örneğin C#'ta jenerikler, dinamik tip tanıma RTTI ve varyant tiplerin uygulanması.
Elbette, şablonları seven eski çocuklar hala var, ancak IMHO bir programcı olarak emekli olma zamanının geldiğinin bir işaretidir.
Okumak komik ) şablonlar uzun zamandır makro ikamelerinden uzaklaşmış ve ayrı bir paradigma olarak oldukça başarılı bir şekilde var olmuştur.
C#'taki jenerikler sadece çok azaltılmış şablonlardır ve aslında çalışma zamanı değil derleme zamanıdır, bu nedenle hızları daha yüksektir).
Ancak sadece RTTI ve varyant türleri bazı kötü düşüncelere işaret ediyor....
____________________
Tamam, tüm bunlar harika elbette. Ancak MQL5'te yalnızca şablon işlevleri vardır, sınıflar yoktur (olacak mı?). Dolayısıyla, şablonlar üzerindeki listeler mevcut araçlarla gerçekleştirilemez.
Okuması komik) şablonlar uzun zamandan beri makro ikamelerinden uzaklaştı ve ayrı bir paradigma olarak oldukça başarılı bir şekilde var oldu.
C#'taki jenerikler sadece çok azaltılmış şablonlardır ve genel olarak çalışma zamanı değil, derleme zamanı nedeniyle kullanım hızları daha yüksektir).
Ancak sadece RTTI ve varyant türleri bazı kötü düşüncelere işaret ediyor....
____________________
Tamam, tüm bunlar harika elbette. Ancak MQL5'te yalnızca şablon işlevleri vardır, sınıflar yoktur (olacak mı?). Dolayısıyla, şablonlar üzerindeki listeler mevcut araçlarla gerçekleştirilemez.
Mutlusunuz çünkü fosil paradigmalar geçen yüzyıldan kalma sıcak anılarınız ve kapsamlı bir bilgi bagajı gibi görünüyor.
Ancak bu nedenle modern yaklaşımları gölgede bırakmaya gerek yok, çünkü MQ'lar müşterilerinin büyükbaba Macro Assembler ve ANSI C için nostaljik olduğunu varsayacak ve MQL5'i geliştirmek için önerileri görmezden gelecektir.
.
Şablon olmadığından, bunu makrolarla yapabilirsiniz, hatta sanırım birisi bu konuda bir makale bile yazdı (şablonlar yerine makrolar) + stl'deki algoritmaların benzerleri de makrolar üzerinde. Ancak bence tüm bunlar standart kütüphanede şablonlar üzerinde olmalı, kendi kapsayıcılarınızı yazmak bir şekilde yanlıştır (sadece eğitim amaçlı yararlıdır), bir dizi ile yapmak daha kolaydır.
upd: makrolarda algoritmalara gerek yok, fonksiyon şablonları mevcut. Sanal insert/...'i sevmiyorum hata ayıklama modunda tip kontrollü asserts kullanmak daha iyidir.
Merhaba,
test_MQL5_List.mq5 dosyasını derlemeye çalıştığımda aşağıdaki hataları alıyorum:
'm_head' - sabit nesnenin üyesi değiştirilemez CiSingleList.mqh 504 9
'm_tail' - sabit nesnenin üyesi değiştirilemez CiSingleList.mqh 505 9
'm_size' - sabit nesnenin üyesi değiştirilemez CiSingleList.mqh 496 9