問題タブ [temporary-objects]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
130 参照

c++ - 一時オブジェクトのメンバーにアクセスできますか?

を使用して一時オブジェクトを作成class-type-name(parameters).memberし、コンストラクターが完了していると仮定すると、オブジェクトのメンバーにアクセスできますか?

次の例を検討してください。

アクセスしたらすぐに A のコンストラクターを実行する必要がありますstateか?

0 投票する
1 に答える
437 参照

multithreading - 一時管理対象オブジェクトが子コンテキストからメイン コンテキストに正しくマージされない

プライベート コンテキストをメイン コンテキストにマージする必要があるマルチスレッド アプリケーションがあり、メイン コンテキストは永続ストレージ コントローラーに接続されています。

また、管理されていない一時オブジェクトを作成する必要もあります (後で管理することを決定するまで)。

まず、次のように一時オブジェクトを作成しようとしました。

オブジェクトを保持するかどうかを決定した後、私は単純に;

アプリケーションをマルチスレッド化する前はうまく機能していましたが、少し分解して子/親コンテキストによるマルチスレッド同時実行を追加したところ、期待どおりの結果が得られませんでした。

コンテキストの「registeredObjects」を見ると、作成されて挿入されたユーザーが privateContext で管理されていることがわかります。保存後、それに応じて mainContext が変更され、hasChanges があり、registeredObjects に 1 つのオブジェクトがあることがわかります。

しかし、mainContext のその registeredObject をよく見ると、空になっていることがわかります。内容なし。タイプに応じて、すべての属性は nil または 0 です。したがって、これは objectId が同じではないためである可能性があると予想されます...しかし、それは ;( 同じオブジェクトですが、内容はありません。

ここの別の投稿で、この懸念について意見を得ようとしましたが、成功しませんでした。

親/メイン コンテキストにマージした後、子コンテキスト オブジェクトが空になる

とにかく、オブジェクトの作成方法を変更することで、ようやく機能するようになりました。

突然、子オブジェクトが内容を失うことなく mainContext にマージされました。理由は不明ですが、残念ながら、これにより、一時的な管理されていないオブジェクトを作成できなくなりました... ;( Marcus Zarra が私を支持したことを読みました管理されていないオブジェクトの作成に関しては最初のアプローチですが、それは私のマルチスレッドアプリでのコンテキストのマージでは機能しません...

考えやアイデアを楽しみにしています-非同期ワーカースレッドで一時オブジェクトを作成しようとしているのは私だけですか?

編集

何が機能しているか、さらに重要なことに何が機能していないかを示す具体的なコード。

上記は、一時オブジェクトを作成してからコンテキストに挿入するため、機能しません。ただし、このわずかな mod は機能しますが、一時的なオブジェクトを持つことはできません...;

したがって、私は疑問に思っています。違いは何ですか?明らかに何か違いがあるはずですが、私にはわかりません。

0 投票する
1 に答える
330 参照

php - ハッキングIPC専用のメモリ内の一時的なMySqlデータベース?

通信する必要がある 2 つの PHP スクリプトがあります。PHP の IPC が実際には問題ではないことはわかっています。私はそれを行う方法を考えていましたが、両方のスクリプトが MySQL サーバー上の同じデータベースにアクセスします。通信はリアルタイムである必要はありません (ただし、比較的高速である必要があります)。

テーブルを介してデータをやり取りするのが良い方法だと思いました。

問題: このテーブルがメモリ内にのみ存在するようにしたい。メインのデータベース アプリケーションは読み取り 70%、書き込み 30% ですが、書き込みが更新されることはほとんどありません。データベースは時間の経過とともに大きくなりますが、削除されることはほとんどありません。速度のために、データベースは SSD 上にあります。IPC にデータベースを使用する際の私の懸念は、絶え間ない書き込みと削除です。そのため、データベースがメモリ内のみにあることを確認したいと思います。永続性は必要ありません。

また、セッションが閉じると一時テーブルが破棄されることも知っています (正しいですか?)。ただし、一時テーブルは、それらを作成したセッションでのみ使用できます。それはオプションではありません。

実際にディスクにヒットしないテーブルを作成する方法はありますか? IPCがディスクの書き込みを非難したので、今から6か月後にSSDを焼き尽くしたくありません。

0 投票する
3 に答える
435 参照

c++ - 参照にバインドされた場合の一時的なオブジェクトの有効期間拡張の例外の根拠は何ですか?

C++11 標準の 12.2 では:

参照がバインドされている一時オブジェクト、または参照がバインドされているサブオブジェクトの完全なオブジェクトである一時オブジェクトは、次の例外を除き、参照の存続期間中持続します。

  1. コンストラクターの ctor-initializer (12.6.2) の参照メンバーへの一時的なバインドは、コンストラクターが終了するまで持続します。

  2. 関数呼び出し (5.2.2) の参照パラメーターへの一時的なバインドは、呼び出しを含む完全な式が完了するまで持続します。

  3. 関数 return ステートメント (6.6.3) の戻り値に一時的にバインドされているものの有効期間は延長されません。一時的なものは、return ステートメントの完全な式の最後で破棄されます。

  4. new-initializer (5.3.4) の参照への一時的なバインドは、new-initializer を含む完全な式が完了するまで持続します。

そして、標準の最後のケースの例があります:

私にとっては、2. and 3.理にかなっていて同意しやすい. しかし、bebind の理由は何1. and 4.ですか? この例は私には悪に見えます。

0 投票する
1 に答える
248 参照

c++ - コンストラクターに渡される一時オブジェクトの C++ 存続期間

コンストラクターで istream 参照を受け入れるクラスがあります。コンストラクターに一時的なオブジェクトが渡された場合、myclass obj(ifstream("filename"));その ifstream の寿命は長くなりobjますか? クラス内の参照またはポインタに割り当てられているかどうかに依存しますか?

例えば:

出力:

出力がファイルが良好であると言っているからといって、それが破壊されたのか、それとも何なのかわかりません。これをカバーする規格の一部があれば、私に知らせてください。ありがとう

0 投票する
2 に答える
1403 参照

c++ - 一時文字列での string::c_str の使用

一時オブジェクトがいつ破棄されるかに関して、これは有効ですか:

呼び出しの最初の引数を評価した直後、fopenまたはfopen呼び出しの後に、一時的なものは破棄されますか。

次のコードでテストします。

与えます:

これは、ステートメント全体が最初に評価され、次にすべての一時ステートメントが破棄されることを示します。この順序付けは標準または実装固有で義務付けられていますか?

0 投票する
1 に答える
522 参照

java - 一時的なオブジェクトを作成せずにネストされた TreeMap を反復処理する方法

私はnGramsに取り組んでおり、ネストされたTreeMapのようなデータ構造を使用してngramを保存しています。Quadgrams のテンプレートは次のようになります。

問題は、ファイルにダンプしようとしているときに発生しています。基本的に、最初のマップのキーセットを反復処理し、次に 2 番目のキーマップなどを反復処理しています。その結果、多くの一時オブジェクトが作成され、GCOverlimitExceeded エラーが発生します。繰り返しのコード スニペットは次のとおりです。

一時オブジェクトを作成せずにこのリストを反復処理するより良い方法はありますか?