並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 9 件 / 9件

新着順 人気順

スマートポインタの検索結果1 - 9 件 / 9件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

スマートポインタに関するエントリは9件あります。 C++電子書籍日本語 などが関連タグです。 人気エントリには 『Rustスマートポインタ比較表 - Qiita』などがあります。
  • Rustスマートポインタ比較表 - Qiita

    以下補足です。 効率 トレードオフを強調するために、相対的な効率を星の個数で表しています。しかし、効率をことさら気にする必要はありません。他の多くのプログラミング言語では、Rustでいうところの Arc<Mutex<T>> をデフォルトで使っているような状況です。要件にあったものを使うことが大事です。 ライフタイム 「短命」とついているものは基本的に、ある関数のスコープに紐付いた形でしか使えません。特に慣れないうちは、これらの型を構造体に入れて使うのはやめておいたほうが無難でしょう。 例外として、グローバル変数 (static, lazy_static!) は &'static 参照として扱うことができます 共有 「ポインタ」と聞くと、参照先が共有されている様子を思い浮かべる人が多いと思いますが、所有権の概念のあるRustでは必ずしもそのイメージは当てはまりません。 &mut T と Bo

      Rustスマートポインタ比較表 - Qiita
    • C++20スマートポインタ入門 - Qiita

      本記事は、C++11スマートポインタ入門の内容を全体的に見直し、C++20時点での規格に合わせて情報を加筆したものです。C++20までの変更点を知りたい方は、色付き部分のみ追いかけていただけると幸いです。 皆さんは、メモリの動的確保に関連したトラブルに遭遇したことはないでしょうか? nullptrで初期化するのを忘れていた、気がつけばメモリが確保されていない、うっかりdeleteし忘れてメモリリークを起こした・・・etc... これらはいずれも、new/deleteを使って動的メモリを手動管理していることに起因するトラブルです。 実は、最近のC++では、メモリの動的確保に際して、new/deleteを書く必要はほとんどありません。 多くの場合、スマートポインタがそれらの作業を代替してくれるからです。 この記事では、初めてスマートポインタについて学ぶ人を対象に、C++に用意されている3種のス

        C++20スマートポインタ入門 - Qiita
      • [Rust] スマートポインタの基礎 | DevelopersIO

        Introduction 最近はRustを使う機会がたまにあるのですが、 もともと仕事ではJavaやJavaScriptを使うことが多かったので そういった言語との違いには少々苦労しています。 Rustを学習するにあたって壁となると思われるポイントはいくつかありますが、 その中のひとつ、スマートポインタについて自分が学んだ結果を記述します。 なお、本稿サンプルコード実行についてはRustのPlayGroundにて行いました。 Smart Pointer? ポインタというと、メモリのアドレスを含む変数の一般的な概念です。 C/C++などの言語に慣れている人ならよく知っていると思います。 この「アドレス」というやつは、何かの他のデータを参照したり指し示したりします。 Rustで最も使用されるポインタは↓のような「参照」です。 &記号を用いて指している値を借用することが可能です。 それ以外の特殊

          [Rust] スマートポインタの基礎 | DevelopersIO
        • Rust のスマートポインタまとめ

          Rust 勉強シリーズ。 いまここ ↓ はじめに 先日 Arc<T> や Mutex<T> に触れたので、そろそろ「いつか理解する」と放置していた ↓ の構造体について整理する。 筆者の方の補足記事 ↓ 筆者の理解度は先月の時点で「Box<T> はみたことある、ほかは知らん」くらい。 スマートポインタとは スマートポインタとは、通常の参照のように使えるだけでなく、追加のメタデータと能力を持つデータ構造のこと。 また、多くの場合スマートポインタは対象とするデータを所有している。 通常、スマートポインタは構造体で実装され、Deref トレイトと Drop トレイトを実装する。 次の記事では構造体 String や構造体 Vec もスマートポインタとして紹介されている。 Deref トレイト Deref トレイトは参照外し演算子 ( * ) の挙動を定義できる。 次の構造体 Foo を所有する変

            Rust のスマートポインタまとめ
          • 6.5. スマートポインタ - ゼロから学ぶ C++

            int main() { int* a = new int(100); int* b = a; // b からも a と同じリソースを参照できるようにする。 // a と b のどちらを delete するべきか? return 0; } 動的確保したリソースを扱う場合、 誤って delete を忘れたり、同じリソースを複数回 delete したりすることを防ぐために、 どの変数がリソースの所有権(リソースを参照する権利と解放する権利)を持つのかをプログラマが細心の注意を払ってコードを書く必要があります。 このようなポインタを扱う上での危険性や負担を下げるために、 C++ ではスマートポインタという仕組みが存在します。 スマートポインタは <memory> ヘッダにて提供されています。 std::shared_ptr¶ std::shared_ptr は動的確保したリソースの所有権を共有す

            • スマートポインタ - The Rust Programming Language 日本語版

              スマートポインタ ポインタは、メモリのアドレスを含む変数の一般的な概念です。このアドレスは、何らかの他のデータを参照、または「指します」。 Rustにおいて最もありふれた種類のポインタは参照です。参照については第4章で習いましたね。参照は&記号で示唆され、指している値を借用します。データを参照すること以外に特別な能力は何もありません。 また、オーバーヘッドもなく、ポインタの中では最も頻繁に使われます。 一方、スマートポインタは、ポインタのように振る舞うだけでなく、追加のメタデータと能力があるデータ構造です。 スマートポインタという概念は、Rustに特有のものではありません。スマートポインタは、C++に端を発し、 他の言語にも存在しています。Rustでは、標準ライブラリに定義された色々なスマートポインタが、 参照以上の機能を提供します。この章で探究する一つの例が、参照カウント方式のスマートポ

              • Kentaro Hara on Twitter: "Chromiumの生ポインタ15000個をスマートポインタraw_ptr&lt;T&gt;に書き換える大変更が完了しました。感謝祭の週末を狙って、44時間以内に完了させるために何度も事前にシミュレートして、当日何か起きたときのために東京・スイ… https://t.co/LPN3PD5kH3"

                Chromiumの生ポインタ15000個をスマートポインタraw_ptr&lt;T&gt;に書き換える大変更が完了しました。感謝祭の週末を狙って、44時間以内に完了させるために何度も事前にシミュレートして、当日何か起きたときのために東京・スイ… https://t.co/LPN3PD5kH3

                  Kentaro Hara on Twitter: "Chromiumの生ポインタ15000個をスマートポインタraw_ptr&lt;T&gt;に書き換える大変更が完了しました。感謝祭の週末を狙って、44時間以内に完了させるために何度も事前にシミュレートして、当日何か起きたときのために東京・スイ… https://t.co/LPN3PD5kH3"
                • C++ スマートポインタのメモリ管理の仕組み

                  1. 概要 C++11 から導入されているスマートポインタ(unique_ptr, shared_ptrなど) のメモリ管理の仕組みについて調べたことをまとめています。スマートポインタでは、new/deleteの関係ように自分で意図的に delete をしなくても、その変数の生存範囲(スコープ)が終わったタイミングで自動で破棄されるため、動的に確保されたメモリのメモリリークを防ぐことが出来ます。 ここではスマートポインタ自体の前提知識について説明しませんが、C++11スマートポインタ入門が非常に良くまとまっているため、必要があればこれを読むことをお勧めします。 また、ソフトウェアデザイン 2021年9月号でも、C/C++のメモリ管理について概要が少しだけ説明されています。 2. 参照先が誰も居なくなった時点でメモリ解放 スマートポインタの場合、その変数を参照する人が誰も居なくなった時点で自

                    C++ スマートポインタのメモリ管理の仕組み
                  • スマートポインタとボックス――Rustのメモリ管理を理解する

                    ポインタとスマートポインタ ポインタという言語仕様は、多くのプログラミング言語に存在します。特にC言語で重要なポジションを占めている印象が強いですが、値の実体を持たずに「場所」のみの情報で値へのアクセスが可能なため、融通性と効率性に優れています。反面、使いこなしが難しいとされ、言語習得の上でのハードルであったり、バグ発生の大きな要因とされたりすることも多い存在です。ただし、使いこなせれば強力な武器となるのは間違いありません。今回は、このポインタがテーマです。 ポインタとしての参照 Rustでもポインタが使えます。それが、「参照」と「スマートポインタ」です。参照は、連載第6回で紹介しました。値を「&」演算子によって借用すると、それは参照となり、所有権を持たずに値へアクセスできる、というものです。これはまさにポインタの働きそのものです。参照は値を指し示すだけなので、その利用においてオーバーヘッ

                      スマートポインタとボックス――Rustのメモリ管理を理解する
                    1

                    新着記事