Erreurs, bugs, questions - page 1619

 
Andrey Dik:
Quelqu'un a dit, si je me souviens bien, Renat ou vous, qu'il est recommandé d'utiliser Point(), Digits()... C'est vrai ? Au moins, me souvenant de la recommandation, je le fais toujours.

Oui, c'est vrai.

La prochaine fois, je donnerai des exemples qui vont dans le sens de nos recommandations.

 

Quelques questions et demandes aux développeurs.

Il y a un an, nous avons discuté de l'idée de renvoyer la valeur de la fonction par référence (demande 1292558). On nous a finalement assuré que le problème était résolu et que la fonctionnalité apparaîtra à la fin de l'automne (l'année dernière). Mais nous sommes toujours là. Pouvons-nous demander quelle est la raison pour laquelle cette fonctionnalité n'a pas été mise en œuvre ?

2) Qu'en est-il de l'héritage multiple ? Moi, par exemple, j'en ai vraiment besoin. Au moins un double héritage.

3. Le mot clé override pour les fonctions virtuelles dans les classes dérivées est une chose absolument nécessaire pour la POO. Le compilateur ne pourra pas les contrôler autrement : si vous avez défini un mauvais type d'argument quelque part ou oublié d'utiliser const, c'est fini - il s'agit d'une fonction différente. Nous obtenons également des erreurs qui sont difficiles à attraper.

4. Nous avons besoin de la possibilité de surcharger l'opérateur fantôme.

 

Vous devez également affiner les modèles de fonction. Pour l'instant, tous vos noms de type sont liés aux arguments de fonction, ce qui rend impossible l'implémentation de nombreuses constructions. Par exemple, celui-ci :

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

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

Bien sûr, on peut résoudre ce problème de manière artisanale, en passant des arguments factices dans la fonction, mais vous comprenez que cela rend le code très confus.

 
Alexey Navoykov:

Vous devez également affiner les modèles de fonctions. Pour l'instant, tous vos noms de types sont câblés aux arguments de fonctions. De ce fait, de nombreuses constructions ne peuvent pas être implémentées. Par exemple, celui-ci :

Bien sûr, cela peut être résolu en passant des arguments factices dans la fonction, mais vous comprenez que cela rend le code très confus.

C'est dans nos plans et nous le ferons.
 

J'aimerais également que le compilateur précise dans le journal le type de la variable qui a causé l'erreur lorsqu'il détecte une erreur à l'intérieur du modèle, sinon il peut être très difficile de la retrouver.

Supposons le fragment de code suivant :

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

Nous ne savons pas à quel type T correspond ici, il est donc difficile de déterminer d'où dans le programme ce motif a été appelé. Et il peut y avoir de très nombreux fragments de ce type, y compris ceux provenant d'autres modèles. Et si le compilateur avait écrit que obj est de type C par exemple, vous auriez tout de suite compris où chercher.

 
Bild 985 bug non connu

Ouvert, Commencé : 2016.07.04 06:48, #1507434

Bientôt un mois ....

 
Vladimir Pastushak:
Bild 985 bug non connu

Ouvert, Commencé : 2016.07.04 06:48, #1507434

Bientôt un mois ....

Les administrateurs et les développeurs ne partent pas pour un week-end sans réponse...

 
Bonjour à tous. J'ai posé cette question il y a plusieurs pages, mais je vais réessayer. Existe-t-il un moyen de me reconnecter à mon compte lorsque la connexion au serveur MT5 est interrompue ? La recherche sur les forums n'a rien donné.
 
Dmitri Custurov:
Bonjour à tous. J'ai posé cette question il y a plusieurs pages, mais je vais réessayer. Existe-t-il un moyen de me reconnecter à mon compte lorsque la connexion au serveur MT5 est interrompue ? La recherche sur les forums n'a rien donné.
Non, tu ne peux pas. Mais la reconnexion est automatique, donc ce n'est pas nécessaire.
 
Malheureusement, pas toujours. Si vous ne vous connectez pas pendant une longue période, le terminal affiche "Account disable" et vous devez alors vous connecter manuellement. C'est le cas, par exemple, dans une fondation où les serveurs sont généralement éteints pendant la nuit.