Erreurs, bugs, questions - page 1031

 
MetaDriver:
Les six fonctionnaient jusqu'à ce que j'en désactive un il y a quelques jours : le processeur surchauffait (il fait chaud dans la pièce). Maintenant cinq fonctionnent, le vol est normal.

Désolé, fausse alerte :)
C'est juste qu'il n'y a que 3 agents en cours d'exécution, mais ils rebondissent sur différents cœurs.

J'ai manqué la capacité du système à distribuer la charge uniformément...

 
Al_key:
.............

Comment ça se passe là-dedans ?

Je ne peux pas reproduire votre situation pour une raison simple : je n'ai pas de :

   file_handle = FileOpen("CSV - макроэкономика и госкорпстат/Existing Home Sales Change.csv",FILE_READ|FILE_CSV|FILE_ANSI,',');
 
mql5:
L'un des périphériques OpenCL présente une erreur de pilote et le terminal se bloque lorsqu'on essaie de l'utiliser.

Reportez-vous à la branche du registre [HKEY_LOCAL_MACHINE\SOFTWARE\Khronos\OpenCL\Vendors] pour deviner les périphériques OpenCL dont vous disposez.

Il est recommandé de trouver des mises à jour pour eux.

Bizarre, j'ai mis à jour les pilotes. Après la mise à jour, deux terminaux ont démarré sans problème, puis ont recommencé à donner cette erreur.

(nvidia geforce 710m version 320.49)


L'initialisation du terminal OpenCL a sauté à cause d'une erreur critique, veuillez mettre à jour les pilotes OpenCL.


Comment pouvez-vous vérifier si le pilote fonctionne ou non d'une autre manière ?

 

Téléchargé intel_sdk_for_ocl_applications_2013_x64 Il semble fonctionner maintenant.

2013.08.05 09:15:38 Périphérique OpenCL n°1 : GPU NVIDIA Corporation GeForce 710M avec OpenCL 1.1 (2 unités, 1550 MHz, 1024 Mb, version 320.49, classement 181)
2013.08.05 09:15:38 Dispositif OpenCL #0 : Intel(R) Corporation Intel(R) Pentium(R) CPU B960 @ 2.20GHz avec OpenCL 1.2 (2 unités, 2200 MHz, 2885 Mb, version 1.2, rating 13)

 
Dans la référence MQL5 :

Tout caractère unique placé entre guillemets simples ou codé en caractères ASCII hexadécimaux comme '\x10' est une constante de caractère et est de type ushort.

class A {
public:
        void operator<<( ushort ch ) {}
        void operator<<( int ch ) {}
};

void OnStart()
{
        A a;
        a << '5'; // ошибка
        a << (ushort)'5'; // нормально
}
La question se pose alors de savoir pourquoi le compilateur ne peut pas distinguer ushort de int - sans aucune indication explicite ?
 
A100:
Dans la référence MQL5 :

Tout caractère unique placé entre guillemets simples ou codé en caractères ASCII hexadécimaux comme '\x10' est une constante de caractère et est de type ushort.

La question se pose de savoir pourquoi le compilateur ne peut pas faire la distinction entre ushort et int, sans indication explicite ?

Vous lisez la documentation de manière trop sélective

Notions de base du langage - Types de données - Conversion de type

Les types de données char, uchar, short et ushort sont inconditionnellement convertis en type int dans les opérations.

Correctement, vous ne devriez laisser qu'une seule opération, int, surchargée. Sinon, vous pouvez obtenir toutes sortes d'effets aléatoires

 
stringo:

Vous lisez la documentation de manière trop sélective

Bases du langage - types de données - conversion de type

Ils ne sont donnés qu'en cas de besoin.
void OnStart()
{
        A a;
        ushort ch = '5';
        a << ch;
}

Rien n'est donné ici - tout fonctionne.

La question est que "5" est du type "ushort".

 
A100:
Ils ne sont coulés que dans les endroits où cela est nécessaire.

Rien n'est donné ici - tout fonctionne.

Le problème est que '5' est du type ushort.

Supprimez l'une des opérations surchargées (n'importe laquelle !) et il n'y a plus de problème.
 
Oui, au fait, que vouliez-vous dire en essayant d'organiser le décalage vers la gauche à 0x35, c'est-à-dire 48 en décimal (qui est le nombre auquel le littéral '5' se convertit) ?
 
stringo:
Au fait, que vouliez-vous dire en essayant d'organiser le décalage vers la gauche par 35 (qui est le nombre en lequel le '5' littéral se convertit) ?
Il s'agissait d'un exemple simplifié au maximum. Le but était de surcharger l'opérateur. Cela vous laisse avec la transformation explicite