Namespaces
Variants

Basic concepts

From ja.cppreference.net
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements (loops)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications ( until C++17* )
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
Miscellaneous

このセクションでは、C++プログラミング言語を説明する際に使用される特定の用語と概念の定義を提供します。

C++プログラムは、通常ヘッダーファイルとソースファイルから成るテキストファイルの連続であり、 宣言 を含んでいます。これらは 翻訳 を経て実行可能プログラムとなり、C++実装がその main関数 を呼び出すときに実行されます。

C++プログラム内の特定の単語は特別な意味を持ち、これらは keywords として知られています。その他の単語は identifiers として使用できます。 Comments は翻訳中に無視されます。C++プログラムにはまた literals も含まれ、その内部の文字の値は character sets and encodings によって決定されます。プログラム内の特定の文字は escape sequences で表現する必要があります。

C++プログラムの エンティティ は、値、 オブジェクト 、 参照 、 構造化バインディング (C++17以降) 、 結果バインディング (C++26以降) 、 関数 、 列挙子 、 型 、クラスメンバ、 テンプレート 、 テンプレート特殊化 、 パック (C++11以降) 、および 名前空間 です。プリプロセッサ マクロ はC++のエンティティではありません。

Declarations はエンティティを導入し、それらを names に関連付け、そのプロパティを定義する可能性があります。エンティティを使用するために必要なすべてのプロパティを定義する宣言は definitions です。プログラムは odr-used される非インライン関数または変数の定義を一つだけ含まなければなりません。

関数の定義は通常、 statements のシーケンスを含み、その一部は expressions を含み、これらはプログラムによって実行される計算を指定します。

プログラム内で遭遇する名前は、それらを導入した宣言と name lookup を使用して関連付けられます。各名前は、その scope と呼ばれるプログラムの一部でのみ有効です。一部の名前は linkage を持ち、これにより異なるスコープや翻訳単位で現れた場合でも同じエンティティを参照するようになります。

C++における各オブジェクト、参照、関数、式は、 型 に関連付けられており、その型は 基本型 、複合型、または ユーザー定義型 であり、完全型または 不完全型 などがあります。

非静的データメンバではない宣言されたオブジェクトと宣言された参照は 変数 です。

関連項目

C documentation for Basic concepts
日本語訳:
C documentation for 基本概念
変更点: - "Basic concepts" → "基本概念" に翻訳 - HTMLタグ、属性、リンクテキストはそのまま保持 - C++専門用語は翻訳せず保持