問題タブ [ownership-semantics]

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 投票する
3 に答える
592 参照

c++ - スマート ポインターの所有権のセマンティクスと等価性

スマート ポインターについていくつか質問がありますが、以前は信用していませんでした。

  1. オブジェクトを所有する、オブジェクトを指す、スマート ポインターの世界でオブジェクトを管理する、とはどういう意味ですか? 以前は、オブジェクトを所有する人もそれを指し示し、オブジェクトを管理していると考えていました。これで、スマート ポインターはオブジェクトを所有できるが、別のオブジェクト (エイリアス コンストラクター) を指すことができることがわかりました。ここで、オブジェクトを所有することの意味について本当に良い説明を見つけました-> http://www.umich.edu/~eecs381/handouts/C++11_smart_ptrs.pdf、それでも私はこの3つの用語を区別できません。
  2. ポインターがオブジェクトを所有しているが、別のオブジェクトを指している場合、彼はどのオブジェクトを管理していますか? 彼がそれを所有しているもの、または彼が指し示しているもの、あるいはその両方? オブジェクトを所有しているのに、それを指していないことに何の意味があるのでしょうか?
  3. 2 つのスマート ポインターが等しいのはいつですか? 2 つのポインターが同じオブジェクトを所有していて、同時に異なる可能性がありますか? 私はそれらの価値の平等には興味がありませんが、所有権に関してです。
  4. 所有権の順序が重要なのはなぜですか (ポインターをコンテナー内のキーとして使用する以外に)? これは shared_ptr にのみ関連すると思います。

すべては owner_before を理解しようとすることから始まりましたが、今ではこのトピックを調べ始める前よりも混乱しています.. :(

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

rust - 条件付きで T を Rc から移動するカウントが1のとき

Rc<T>カウントがのときにオブジェクトを から移動する方法はあり1ますか? 私はどのように実装するかを考えています:

セマンティクスはT、カウントがそう1であれば取得し、それ以外の場合は戻ってくるsharedので、後でもう一度試すことができます。

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

rust - S でジェネリック トレイトを使用するT が S よりも長生きするように強制する

煮詰めた問題は次のようになります。

遊び場

上記のコードはコンパイルに失敗します:

WorldState<'a>は非常に寿命の短いデータ型 (フレームごとに 1 つ)LearningAlgorithmですが、 は非常に寿命の長いデータ型 (複数のゲーム) です。しかし、私がこのことを実装した方法では、Rust は、WorldState私が渡したすべてprint_learning_informationLearningAlgorithm.

私は何を間違えましたか?これは他にどのように処理できますか?

私がしたくないいくつかのこと:

  • WorldState通常の状態が含まれています (実際には、ベクトルではなくいくつかのベクトルが含まれており、各プレイヤーに独自の世界観を渡すときにf64それらを構造体にコピーしたくないため)WorldState
  • このプロジェクトを終了して、新しいプロジェクトを開始するだけです (ご存知のように、ある程度の時間を費やした後は、すべての作業を放棄したくはありません)。