ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
インストール
ブラウザよりも高速アクセス!
 

C++11とガベージコレクション

ショートカット: 違い類似点ジャカード類似性係数参考文献

C++11とガベージコレクションの違い

C++11 vs. ガベージコレクション

C++11は、プログラミング言語 C++ のISO標準 ISO/IEC 14882:2011 の略称である。規格の策定中は2009年中の標準化を目指していたため、C++0x という仮称で呼ばれていた。 ISO/IEC 14882:2003 (C++03) に代わるものとして、2011年8月12日にISOによって承認された。後継のC++14が2014年8月18日に承認されている。 コア言語への機能追加や標準C++ライブラリの拡張を施し、C++TR1ライブラリの大部分を(数学的特殊関数ライブラリを除いて)取り込んでいる。. ベージコレクション(garbage collection; GC)とは、プログラムが動的に確保したメモリ領域のうち、不要になった領域を自動的に解放する機能である。「ガベージコレクション」を直訳すれば「ゴミ集め」「ごみ拾い」となる。1959年ごろ、LISPにおける問題を解決するためジョン・マッカーシーによって発明された。 メモリの断片化を解消する機能はコンパクションと呼ばれ、実現方法によってはガベージコレクションと共にコンパクションも行う仕組みになっている。そのためコンパクションを含めてガベージコレクションと呼ぶ場合もあるが、厳密には区別される。 また、ガベージコレクションを行う主体はガベージコレクタと呼ばれる。ガベージコレクタはタスクやスレッドとして実装される場合が多い。 参照カウント方式のガベージコレクションは通常煩雑なコーディングを必要とするが、それを必要なく実装したライブラリとしがある。.

C++11とガベージコレクション間の類似点

C++11とガベージコレクションは(ユニオンペディアに)共通で8ものを持っています: 弱い参照ポインタ (プログラミング)ライブラリスレッド (コンピュータ)動的メモリ確保C++C言語Java

弱い参照

弱い参照(weak reference、ウィークリファレンス)とは、参照先のオブジェクトをガベージコレクタから守ることのできない参照のことである。弱い参照からのみによって参照されるオブジェクトは到達不可能とみなされ、従っていつでも解放することができる。弱い参照は、不要となったオブジェクトが循環参照によって解放されないという問題を防ぐために用いられる。PythonやJavaをはじめとしたガベージコレクタを実装したオブジェクト指向言語の多くは、弱い参照を実装している。 ガベージコレクタ (GC) はメモリリークを防ぐために用いられる。GCの種類には、主にマーク・アンド・スイープ型と参照カウンタ型の2種類がある。このうち参照カウンタ型は、オブジェクトごとに参照の数を記録したレコードを用意し、その数が0になった時点でオブジェクトを解放するというものである。このタイプのGCは、あるオブジェクト間で参照が循環した場合にそれらを解放することができない。そのため、相互に参照しあったオブジェクト群はメモリリークの原因となる。この問題は、強い参照を弱い参照で置き換えることで循環が断たれるのであれば、弱い参照によって解決することが可能である。 プログラムは、あるオブジェクトに弱い参照のみを用いて参照することで、そのオブジェクトがさほど重要ではないということを示すことができる。そのため弱い参照は、必ずしも必要ではないオブジェクトがメモリ中に存在する数を最小にするためにも用いることができる。 弱い参照の強度を複数もつ言語もある。例えば、Javaには弱い参照、ファントム参照、ソフト参照がある(java.lang.ref パッケージに定義されている)。C++のように、元々ガベージコレクタのない言語で、その代替機能をライブラリでサポートし、その中で弱い参照・強い参照の機能を提供しているものもある。C++のスマートポインタ (Boost, TR1, C++11) の場合ではshared_ptrが「強い参照」でweak_ptrが「弱い参照」である。通常のポインタは参照の数に影響しないと言う意味で「弱い参照」と考えることもできるが、弱い参照はオブジェクトが到達不可能になったことを知っているべきなので、ポインタは本当の意味での弱い参照ではない。 弱い参照が便利なひとつの例として、アプリケーション内で参照されている変数を追跡するケースがある。この追跡リストは、対象オブジェクトに対して弱い参照で参照しなければならない。そうしなければ、一度リストに加えられたオブジェクトはリストによって参照されるため、プログラムが停止するまで半永久的に解放されることはない。 Category:プログラミング言語の構文 Category:メモリ管理.

C++11と弱い参照 · ガベージコレクションと弱い参照 · 続きを見る »

ポインタ (プログラミング)

ポインタ (pointer) とは、あるオブジェクトがなんらかの論理的位置情報でアクセスできるとき、それを参照する(指し示す)ものである。有名な例としては Pascal のポインタが挙げられる。 なお、C++では、さらに独立した「参照」という機能がある。.

C++11とポインタ (プログラミング) · ガベージコレクションとポインタ (プログラミング) · 続きを見る »

ライブラリ

ライブラリ()は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。ライブラリと呼ぶ時は、それ単体ではプログラムとして作動させることはできない実行ファイルではない場合がある。ライブラリは他のプログラムに何らかの機能を提供するコードの集まりと言うことができる。ソースコードの場合と、オブジェクトコード、あるいは専用の形式を用いる場合とがある。たとえば、UNIXのライブラリはオブジェクトコードをarと呼ばれるアーカイバでひとまとめにして利用する。図書館()と同様にプログラム(算譜)の書庫であるので、索引方法が重要である。 また、ソフトウェア以外の再利用可能なものの集合について使われることもある。.

C++11とライブラリ · ガベージコレクションとライブラリ · 続きを見る »

スレッド (コンピュータ)

レッド(thread)とは、CPU利用の単位。プロセスに比べて、プログラムを実行するときのコンテキスト情報が最小で済むので切り替えが速くなる。スレッドは、thread of execution(実行の脈絡)という言葉を省略したものである。 プログラミングの観点からみると、アプリケーションの処理の「実行の脈絡」は1つでないことが多い。これをシングルスレッドで実現しようとするとシグナルやタイマーを駆使してコーディングすることになる。また、複数のプロセスに分割してプロセス間通信で協調動作させるという方法もある。しかし、いずれの場合もそれらの機能を使うための余分な、本来のアルゴリズムと関係ないコーディングが必要となる。スレッドを使用したプログラミングは本来のアルゴリズムに集中しやすくなり、プログラムの構造が改善されるという効果がある。.

C++11とスレッド (コンピュータ) · ガベージコレクションとスレッド (コンピュータ) · 続きを見る »

動的メモリ確保

動的メモリ確保 (動的メモリアロケーション・動的メモリ割り当て・dynamic memory allocation) とは、メモリ管理のひとつである、プログラムを実行しながら、並行して必要なメモリ領域の確保と解放を行う仕組みである。 メモリの利用状況は、自身の実行状況や他のプログラムの実行状況に応じて常に変動するため、それらの動作に支障を来さぬよう必要なメモリ領域を適切なアドレスに対して臨機応変に確保・解放を行う必要がある。.

C++11と動的メモリ確保 · ガベージコレクションと動的メモリ確保 · 続きを見る »

C++

C++(シープラスプラス)は、汎用プログラミング言語の一つである。日本語では略してシープラプラ、シープラなどとも呼ばれる。.

C++とC++11 · C++とガベージコレクション · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

C++11とC言語 · C言語とガベージコレクション · 続きを見る »

Java

Java(ジャバ)は、狭義ではプログラミング言語Javaを指す。広義では言語仕様以外にも、仕様が与えられているJavaクラスライブラリやJava仮想マシン、さらにはJDKやJREなどの公式のものをはじめとする、場合によってはサードパーティのものなどを含め曖昧にJavaプラットフォームと総称されるようなものなどのエコシステムなどを指すこともある。構文についてはJavaの文法の記事を参照。.

C++11とJava · Javaとガベージコレクション · 続きを見る »

上記のリストは以下の質問に答えます

C++11とガベージコレクションの間の比較

ガベージコレクションが45を有しているC++11は、78の関係を有しています。 彼らは一般的な8で持っているように、ジャカード指数は6.50%です = 8 / (78 + 45)。

参考文献

この記事では、C++11とガベージコレクションとの関係を示しています。情報が抽出された各記事にアクセスするには、次のURLをご覧ください:

ヘイ!私たちは今、Facebook上です! »