Hatalar, hatalar, sorular - sayfa 2472

 

Özel bir sembol oluşturuyorum ve onu 25 yıllık günlük çubuklarla dolduruyorum, bu yaklaşık 400 kb olmalı. Ancak .hcc dosyaları toplam 15 mb büyüklüğünde sembol klasöründe oluşturulur! Üstelik tüm bunlar yaklaşık 20 saniye sürüyor! Hiçbir kapıya tırmanmıyor... Bu nasıl açıklanabilir?

 
Sergey Dzyublik :

Bir şablon işlevine işaretçi ile typedef bildirme olasılığını bulduğuma şaşırdım.
Ancak mutluluk uzun sürmedi.

ne hakkında konuşuyordum
 

Son zamanlarda, MT'deki bir düzine çalışma "özelliği" ve hata hakkında bilgi verildi.
Düzeltilmesi gerekip gerekmediğini nasıl anlarsınız?
Lütfen her yeni yapı yayınlandığında her şeyi test etmeyi teklif etmeyin.

(MT5(build 2057)'de sabit değil) "Strateji test cihazı: 2 geçiş planlandı, ancak uygulamada "OnInit kritik hatası" nedeniyle sonsuz sayıda geçiş > 900 geçiş"".
(MT5(build 2057)'de sabit değil) "Dinamik dizilere sahip yapılar için varsayılan atama operatörünün parçası olarak dizi boyutu alanının yanlış değeri."
(MT5(build 2057)'de sabit değil) "Derleyici, bir işlevden değere göre bir sınıf nesnesi döndürürken bir sınıf için varsayılan kopya oluşturucuyu görmez."
ve (MT5(build 2057)'de sabit değil) "Şablon sınıfları ve "karmaşık" yapılar için "kendine" tip dökümü yapılırken derleme hatası."
(MT5(build 2057'de sabit değil)) "Bir typedef ile çalışırken, açık bir uzmanlığa sahip bir şablon işlevi kullanmak, şablon işlev kodunun oluşturulmasına neden olmaz."
(MT5(build 2057)'de düzeltilmedi) "Bir typedef içinde aynı işlev imzasını yeniden kullanırken derleme hatası ".
(MT5'te sabit değil(build 2057)) "Bir çok dize işleme işlevi, bir dizedeki NULL karakterlerle çalışmıyor (örn: ShortArrayToString, StringInit, StringFill)".
(MT5(build 2057)'de sabit değil) "StringSetLength işlevi yalnızca dizenin uzunluğunu "kesme" yönünde çalışır, ancak artırmaz."
(MT5'te düzeltildi(build 2057)) " Strateji test cihazı: 750 "metatester64.exe" işlemini başlat".
" Forum www.mql5.com, resimli bir mesajı düzenlerken, önceki resim yenisiyle değiştirilmez".


Teklifler:
"Kullanıcıya varsayılan olarak atama operatörü (kopyalama oluşturucu) için kod oluşturmaya/kaldırmaya zorlama yeteneği verin."
"ArrayCopy işlevlerinin sınıfları ve "karmaşık" yapıları kopyalamasına izin verin, tıpkı yapıların herhangi bir nesne türü için derin kopyalama işlevi sağlaması gibi."
" Dinamik dizilerle çalışırken kullanıcıya Kapasite değerini okuma/ayarlama işlevi verin "

""Sinyaller" hizmetinin bilgi grafiklerini iyileştirmeye yönelik değişiklikler"

 

Şablonlu bir typedef ve şablonlu bir sınıfta typedef kullanmak iki farklı şeydir.
İkinci seçenek çalışır, ancak farklı türde bir şablon sınıfını yeniden kullanırken ad alanının çakışmasıyla ilgili bir sorun vardır.

 
Alexey Navoykov :

Özel bir sembol oluşturuyorum ve onu 25 yıllık günlük çubuklarla dolduruyorum, bu yaklaşık 400 kb olmalı. Ancak .hcc dosyaları toplam 15 mb büyüklüğünde sembol klasöründe oluşturulur! Üstelik tüm bunlar yaklaşık 20 saniye sürüyor! Hiçbir kapıya tırmanmıyor... Bu nasıl açıklanabilir?

Kayıtta ne olduğuna bakın.

 
fxsaber :

Kayıtta ne olduğunu görün.

Hcc biçimini bilmiyorum, bu yüzden dosyada ne olduğunu kontrol edemiyorum. Ve terminalde günlük barları gösterir. Daha küçük bir zaman dilimine geçerken aynı çubukları görüyorum. Görünüşe göre, başlangıçta TÜM zaman dilimlerini de bir dosyaya kaydediyor, bu yüzden chtol... Sadece dakikaların kaydedildiğini düşündüm, bundan sonra diğer tüm zaman dilimleri sentezlendi. Ve daha önce de belirtildiği gibi dakika çubuklarının sayısı günlük çubuklarla çakışıyor, yani. toplamda yaklaşık 7000 dakikalık çubuklar vardır.

Onlar. 7000 * M1, 7000 * M2, 7000 * M3 vb. bir dosyaya kaydettiği varsayımına sahibim. 7000 * D1'e kadar, o zaman muhtemelen sonunda 15 MB olacak. Eğer öyleyse, bu tam bir saçmalık. Ama bunu hesaba katsak bile neden 20 saniye kadar harcadığı belli değil! Düzeltme: yaklaşık 5 saniye (20, mevcut geçmişi güncellerken).

 

Forum sitesinde bir şey bozuldu: En son gönderilerimi göremiyorum.
Örneğin, bu ve bu, " Tüm Gönderiler " bölümünde eksik
Ve daha önce olduğu gibi, derecelendirme birkaç ay önce 6000'den fazlaydı. Her ne kadar bilmesem de - belki de daha az etkinlik nedeniyle derecelendirme zamanla düşebilir.

 
class A{
public :
   struct AA{
       uchar data[ 8 ];
   };
   static AA obj;
};

AA A::obj = { 0 };     // OK


template < typename T>
class B{
public :
   struct BB{
      T data[ 8 ];
   };
   static BB obj;
};

template < typename T>
BB B::obj = { 0 };       //'BB' - declaration without type    




void OnStart (){  
   ArrayPrint (A::obj.data);
   //ArrayPrint(BB<int>::obj.data);
}


Şu anda, bir şablon sınıfı içinde bildirilen statik bir değişkeni kullanmak mümkün değildir.
Ad alanının tanıtılmasıyla bu sınırlama atlanabilir mi?

 
Sergey Dzyublik :


Şu anda, bir şablon sınıfı içinde bildirilen statik bir değişkeni kullanmak mümkün değildir.
Ad alanının tanıtılmasıyla bu sınırlama atlanabilir mi?

Değişkenle ilgili değil. BB sınıfını görmüyor. Şablon < typename T> class BB olarak B sınıfının dışına taşınması gerekir;

 
Alexey Navoykov :

Değişkenle ilgili değil. BB sınıfını görmüyor. Şablon < typename T> class BB olarak B sınıfının dışına taşınması gerekir;

Gönderi geliştiricilere yönelikti, böylece onların isteği olsaydı, kutudan gelen desteği "şamanlaştırdılar".

Yine, sorun, bir şablon sınıfı içinde bildirilen statik bir değişkenin kullanılamamasıyla ilgilidir.
typedef ile durumlarda ne yapmayı önerirsiniz:

 
class A{
public :
   typedef void (*callback_A)();
   static callback_A f_ptr;

};
callback_A A::f_ptr = NULL ;                  // Ok


template < typename T>
class B{
public :
   typedef T (*callback_B)();
   static callback_B f_ptr;
};
template < typename T>
callback_B B::f_ptr = NULL ;                  //'callback_B' - declaration without type	

void func_A(){PRINT( __FUNCSIG__ );}
int func_B(){PRINT( __FUNCSIG__ ); return 0 ;}

void OnStart (){  
   A::f_ptr = func_A;
   A::f_ptr();

   //B<int>::f_ptr = func_B;
   //B<int>::f_ptr();
}