エラー、バグ、質問 - ページ 2199

 
Комбинатор:

一時的なオブジェクトは通常すぐには削除されず、コンテキストの終了時に削除されます。 C++では、私の記憶が間違っていなければ、標準に明記されているはずです。

高速に削除したい場合は、コンテキストを制御します。

本当にオペレーターをしなければならないでしょう =。

ありがとうございました。SDによると、現在の挙動を修正する予定だが、時期は未定だという。

 

白黒で印刷するためのグラフィックをプレビュー(印刷しなかったが、おそらく印刷でもそうだろう)するときの色の線(レベル)。


 

ターミナルビルド1795

Windows 7 64.


最適化を開始 し、30分後に中断 すると、 ターミナルがハングアップ してしまい、停止する方法がありません。

タスクマネージャに8つのMetaTester64エージェントが表示されています。

その後、端末を起動 することができません。待つ、またはコンピュータを再起動する必要があります。


みんなこんな感じなんですか?

Запуск платформы - Для продвинутых пользователей - MetaTrader 5
Запуск платформы - Для продвинутых пользователей - MetaTrader 5
  • www.metatrader5.com
По завершении установки в меню "Пуск" создается группа программ торговой платформы, а на рабочем столе дополнительно помещается ярлык программы. Используйте их для запуска. Нельзя запускать одновременно две копии платформы из одной директории. Чтобы одновременно запустить несколько копий, установите соответствующее количество программ в разные...
 
またフォーラムに何か問題があるのか?一日が始まり、現実離れしたスローダウンが始まりました。ページの読み込みが速く、その後30秒程度。
 
Vladimir Karputov:
またフォーラムに何か問題があるのか?一日が始まり、現実離れしたスローダウンが始まりました。その後、約30秒間、ページの読み込みが速くなります。
Rknさん、たぶん...。他のサービスでプッシュするのは問題があります。電報が他のサービスを介して動作するようなものです。
 
コンパイラーエラー
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さん、そうですか・・・。他のサービスではプッシャーに問題がある...テレグラムがそれを通して動くような...。

ロシア国外にいるため、今でも時々ウェブサイトがハングアップしてしまいます。でも、何ヶ月も前から持っているんです。慣れたものです。

 
fxsaber:

ありがとうございました。オブジェクトを定義する際に、return objectと"="は追加のコンストラクタを経由することが判明しました。

本当は、どの場合をコンストラクタと呼び(どの場合を)、どの場合をオペレータと呼ぶのか、どこかに明確な表が欲しいところです。今はすべて直感のレベルで、当然ながら失敗します。

コンパイラは自由に最適化することができます(rvo, nrvo, copy elision, その他の最適化により不要なものを安全にカットすることができます)ので、特定のルールにあまり依存しない方が良いでしょう。コピーコンストラクタと「イコール」演算子は同じことをするはずです(それらに異なる動作を入れる必要はありません)。コピーアンドスワップ熟語」という良い方法があります。英語が許すなら、https://stackoverflow.com/questioncopy-and-swap idioms/3279543/what-is-the-copy-and-swap-idiom に詳しく書かれています。
簡単に言えば、すべてのコンストラクタと演算子で使用される1つのスワップ関数を書く(我々はコードの量を減らし、同じ動作を取得し、その結果、コンパイラが呼び出し、カット、過剰最適化するものを心配する必要はありません)。

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;
}

"ハイライト "された文字列は疑問を投げかける。なぜテンポラリーオブジェクトが使用されるとすぐにクラッシュしなかったのでしょうか?つまり、30を出力する前に "

質問というのが正しいですね。一時的なオブジェクトは、コロンの後に崩れているはずです。

ZS: とにかくコピーするコンストラクタ(移動するコンストラクタではない)が必要なので、そこのコードを少しいじりました。μlの場合は、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_:

コンパイラは自由に最適化することができます(rvo, nrvo, copy elision, その他の最適化により不要なものを安全にカットすることができます)ので、特定のルールにあまり依存しない方が良いでしょう。コピーコンストラクタと「イコール」演算子は同じことをするはずです(それらに異なる動作を入れる必要はありません)。英語が許せば、「コピー&スワップ・イディオム」という良い方法があるのですが、こちら(https://stackoverflow.com/questions/3279543/what-is-the-copy-and-swap-idiom)に詳しく書かれています。
簡単に言うと、すべてのコンストラクタと演算子で使われるスワップ関数を一つ書きます(コード量を減らし、同じ動作を得ることができ、その結果、コンパイラの呼び出し、カット、過剰最適化について心配する必要がありません)。

"ハイライトされた行は、疑問を投げかけるものです。なぜテンポラリーオブジェクトが使用されるとすぐにクラッシュしなかったのでしょうか?つまり、30歳という出力の前に"

質問というのが正しいですね。一時的なオブジェクトは、コロンの後に崩れているはずです。

ありがとうございます。SDはすでにRVOの計画について警告しています。

 
スクリプトが何も出力されないのはなぜですか?
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;
}