Hatalar, hatalar, sorular - sayfa 1619

 
Slawa :

Point() sistem işlevi aslında satır içidir ve _Point değişkenine basit bir erişime dönüştürülür

Birisi, hatırladığım kadarıyla, Renat veya siz, Point(), Digits() kullanılmasının tavsiye edildiğini söyledi... Bu doğru mu? En azından tavsiyeyi hatırlayarak, bunu her zaman yaparım.
 
Andrey Dik :
Birisi, hatırladığım kadarıyla, Renat veya siz, Point(), Digits() kullanılmasının tavsiye edildiğini söyledi... Bu doğru mu? En azından tavsiyeyi hatırlayarak, bunu her zaman yaparım.

Evet her şey doğru.

Bir dahaki sefere kendi önerilerimize karşılık gelen örnekler vereceğim.

 

Geliştiricilere birkaç soru ve dilek.

1. Bir yıl önce, hizmet masasında referans yoluyla bir fonksiyon değeri döndürme konusunu tartışmıştık (istek 1292558). Sonuç olarak, sorunun çözüldüğünü garanti ettiler ve bu özellik sonbaharın sonunda (geçen yıl) ortaya çıkacak. Ama hala bir şey var. Neden çalışmadığını öğrenebilir miyim?

2. Peki ya çoklu kalıtım? Örneğin, buna gerçekten ihtiyacım var. En az çift miras.

3. OOP için çok gerekli bir şey, türetilmiş sınıflardaki sanal işlevler için override anahtar sözcüğüdür. Aksi takdirde, derleyici tarafından bunlar üzerinde kontrol yoktur. Bir yerde argümanın türü yanlış ayarlanmış, bir yerde const'ı unutmuşum - işte bu kadar, bu başka bir işlev. Ufak tefek hatalar alıyoruz.

4. Döküm operatörünü aşırı yükleme yeteneğine ihtiyacımız var.

 

İşlev şablonlarının da iyileştirilmesi gerekiyor. Artık,işlev argümanlarına bağlı tüm tür adlarına sahipsiniz. Bu nedenle, birçok tasarımı uygulamak imkansızdır. Örneğin bu:

 template < typename T> 
T  func()  { return T( 0 ); }

void OnStart ()
{
  func< int >();
}

Elbette bu, işleve hayali argümanlar ileterek çarpık bir şekilde çözülebilir, ancak siz kendiniz anlıyorsunuz, bu kodun anlaşılmasını büyük ölçüde karıştırıyor.

 
Alexey Navoykov :

İşlev şablonlarının da iyileştirilmesi gerekiyor. Artık,işlev argümanlarına bağlı tüm tür adlarına sahipsiniz. Bu nedenle, birçok tasarımı uygulamak imkansızdır. Örneğin bu:

Elbette bu, işleve hayali argümanlar ileterek çarpık bir şekilde çözülebilir, ancak siz kendiniz anlıyorsunuz, bu kodun anlaşılmasını büyük ölçüde karıştırıyor.

Planlarda var, yapacağız.
 

İşte başka bir dilek, böylece şablon içinde bir hata tespit edildiğinde, derleyici günlükte hataya neden olan değişkenin türünü belirtir. Aksi takdirde bulmak çok zor olabilir.

Aşağıdaki kod parçacığını söyleyelim:

 void F(A& a)  {  }
void F(B& a)  {  }


template < typename T> 
void     Func(T& obj)  { F(obj); }   // 'F' - no one of the overloads can be applied to the function call

Burada T tipinin ne olduğu bilinmiyor, bu yüzden bu şablonun programda çağrıldığı yeri belirlemek zor. Ve diğer şablonlar da dahil olmak üzere bu tür birçok yer olabilir. Etrafta dolaşmak uzun zaman alıyor. Ve derleyici, örneğin, nesnenin C tipinde olduğunu yazdıysa, nereye bakılacağı hemen netleşir.

 
Build 985 bilinen bir hata değil

Açıldı, Başladı: 2016.07.04 06:48, #1507434

Yakında bir ay olacak....

 
Vladimir Pastushak :
Build 985 bilinen bir hata değil

Açıldı, Başladı: 2016.07.04 06:48, #1507434

Yakında bir ay olacak....

Yöneticiler ve geliştiriciler cevap almadan hafta sonu için ayrılmıyorlar...

 
Herkese merhaba. Soruyu birkaç sayfa önce sormuştum ama tekrar deneyeceğim. MT5'teki sunucuyla bağlantı koptuğunda bir hesaba programlı olarak yeniden giriş yapmak mümkün müdür? Forumlarda arama yapıldığında hiçbir şey çıkmadı.
 
Dmitri Custurov :
Herkese merhaba. Soruyu birkaç sayfa önce sormuştum ama tekrar deneyeceğim. MT5'teki sunucuyla bağlantı koptuğunda bir hesaba programlı olarak yeniden giriş yapmak mümkün müdür? Forumlarda arama yapıldığında hiçbir şey çıkmadı.
Numara. Ancak yeniden bağlanma otomatik olarak gerçekleşir, dolayısıyla böyle bir ihtiyaç yoktur.