Erreurs, bugs, questions - page 2199

 

Lignes de couleur (niveaux) lors de la prévisualisation (je n'ai pas imprimé, mais c'est probablement aussi le cas en impression) des graphiques pour l'impression en noir et blanc.


 

Terminal Bild 1795

Windows 7 64.


Si je lance l'optimisation puis l'interrompt après 30 minutes, le terminal se bloque et il n'y a aucun moyen de l'arrêter.

Il y a 8 agents MetaTester64 dans le gestionnaire des tâches.

Après cela, je ne peux pas démarrer le terminal. Je dois attendre ou redémarrer l'ordinateur.


Est-ce que c'est comme ça pour tout le monde ?

Запуск платформы - Для продвинутых пользователей - MetaTrader 5
Запуск платформы - Для продвинутых пользователей - MetaTrader 5
  • www.metatrader5.com
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
 
Qu'est-ce qui ne va pas avec le forum, déjà ? La journée a commencé et le ralentissement irréel a commencé. Les pages se chargent rapidement, puis pendant environ 30 secondes.
 
Vladimir Karputov:
Qu'est-ce qui ne va pas avec le forum, déjà ? La journée a commencé et le ralentissement irréel a commencé. Les pages se chargent rapidement puis pendant environ 30 secondes.
Rkn, probablement... il y a un problème pour pousser sur d'autres services... c'est comme si telegram travaillait à travers eux...
 
Erreur de compilation
class A
{
public:
  int i;
  
  void f() const
  {
    A* Tmp = true ? &this : &this; // no problem - BUG!
//    A* Tmp = &this; // '=' - cannot convert from const pointer to nonconst pointer
    
    Tmp.i = 4;
  }
};

void OnStart()
{
  const A a;
  
  a.f();
  
  Print(a.i); // 4
}
 
Ilnur Khasanov:
rkn, je suppose... Il y a des problèmes avec les pushers sur d'autres services... c'est comme si Telegram travaillait à travers eux...

En dehors de la Russie, le site web se bloque encore parfois. Mais je l'ai depuis des mois. J'ai l'habitude.

 
fxsaber:

Merci ! Il s'avère que l'objet de retour et "=" lors de la définition d'un objet passent par un constructeur supplémentaire.

En fait, j'aimerais voir un tableau clair quelque part, indiquant quels cas sont appelés constructeurs (et lesquels), et quels cas sont appelés opérateurs. Pour l'instant, tout se passe au niveau de l'intuition, et cela échoue, bien sûr.

Il vaut mieux ne pas trop se fier à des règles spécifiques, les compilateurs sont autorisés à optimiser ce genre de choses assez librement (rvo, nrvo, copy elision, peut-être d'autres optimisations permettront de supprimer en toute sécurité les éléments inutiles). Le constructeur de copie et l'opérateur "égal" devraient faire la même chose (pas besoin de leur donner un comportement différent). Il existe une bonne approche, appelée "copy-and-swap idiom", si l'anglais le permet, elle est décrite en détail ici https://stackoverflow.com/questioncopy-and-swap idioms/3279543/what-is-the-copy-and-swap-idiom.
En bref, vous écrivez une seule fonction swap qui est utilisée dans tous les constructeurs et opérateurs (on réduit la quantité de code, et on obtient le même comportement, ce qui permet de ne pas se soucier de ce que le compilateur va appeler, couper, sur-optimiser).

dumb_array& operator=(dumb_array other)
{
    swap(*this, other);
    return *this;
}
dumb_array (dumb_array &&other)
{//this должен быть в валидном состоянии
    swap(*this, other);
}
dumb_array& operator=(dumb_array &&other)
{
    swap(*this, other);
    return *this;
}

"Les chaînes de caractères surlignées soulèvent des questions. Pourquoi les objets temporaires ne se sont pas plantés dès qu'ils ont été utilisés ? C'est-à-dire, avant la sortie de trente. "

Je pense qu'on peut appeler ça des questions à juste titre. Les objets temporaires auraient dû s'effondrer après le colon.

ZS : J'ai un peu modifié le code ici, car le constructeur de copie (pas celui de déplacement) est nécessaire de toute façon. Pour µl, l'avantage n'est pas aussi évident en raison du manque de références à rvalue.
What is the copy-and-swap idiom?
What is the copy-and-swap idiom?
  • stackoverflow.com
What is this idiom and when should it be used? Which problems does it solve? Does the idiom change when C++11 is used? Although it's been mentioned in many places, we didn't have any singular "what is it" question and answer, so here it is. Here is a partial list of places where it was previously mentioned:
 
pavlick_:

Il vaut mieux ne pas trop se fier à des règles spécifiques, les compilateurs sont tout à fait libres d'optimiser ce genre de choses (rvo, nrvo, copy elision, peut-être d'autres optimisations qui supprimeront tranquillement les choses inutiles). Le constructeur de copie et l'opérateur "égal" devraient faire la même chose (pas besoin de leur donner un comportement différent). Il existe une bonne approche, appelée "copy-and-swap idiom", si l'anglais le permet, elle est décrite en détail ici https://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap-idiom.
En bref, vous écrivez une fonction de remplacement qui est utilisée dans tous les constructeurs et opérateurs (nous réduisons la quantité de code et obtenons le même comportement et, par conséquent, nous ne nous préoccupons pas de ce que le compilateur appelle, coupe, sur-optimise).

"Les lignes surlignées soulèvent des questions. Pourquoi les objets temporaires ne se sont pas plantés dès qu'ils ont été utilisés ? C'est-à-dire, avant la sortie de trente ans."

Je pense qu'on peut appeler ça des questions à juste titre. Les objets temporaires auraient dû s'effondrer après le colon.

Merci, le SD a déjà mis en garde contre les plans du RVO.

 
Pourquoi le script ne produit-il rien ?
class A
{
public:
  A() {}
  
  template <typename T>
  void operator =( T& )
  {
    Print(__FUNCSIG__);
  }

  template <typename T>
  A( T& )
  {
    Print(__FUNCSIG__);
  }
};

A* f()
{
  return(new A);
}

void OnStart()
{
  A* a = f();
  
  A* b;
  b = f();
  
  delete a;
  delete b;
}
 

Qu'est-ce que cela signifie ?

2018.04.24 14:02:21.721 Books   invalid book item[Si-6.18,buy,61996.00000,-50]