名前空間
変種
操作

モジュール (C++20以上)

提供: cppreference.com
< cpp‎ | language
 
 
C++言語
一般的なトピック
フロー制御
条件付き実行文
繰り返し文 (ループ)
ジャンプ文
関数
関数宣言
ラムダ関数宣言
inline 指定子
例外指定(C++20未満)
noexcept 指定子(C++11)
例外
名前空間
指定子
decltype(C++11)
auto(C++11)
alignas(C++11)
記憶域期間指定子
初期化
代替表現
リテラル
ブーリアン - 整数 - 浮動小数点
文字 - 文字列 - nullptr(C++11)
ユーザ定義(C++11)
ユーティリティ
属性(C++11)
typedef 宣言
型エイリアス宣言(C++11)
キャスト
暗黙の変換 - 明示的な変換
static_cast - dynamic_cast
const_cast - reinterpret_cast
メモリ確保
クラス
クラス固有の関数特性
特別なメンバ関数
テンプレート
その他
 
 

モジュールは大量のコードを論理的な部品に分割するのに役立ちます。

モジュールは名前空間とは直交します。

// helloworld.cpp export module helloworld;// モジュール宣言。 import <iostream>;// インポート宣言。   export void hello(){// エクスポート宣言。std::cout<<"Hello world!\n";}
// main.cpp import helloworld;// インポート宣言。   int main(){ hello();}

[編集] 構文

export(オプション)modulemodule-namemodule-partition(オプション)attr(オプション); (1)
exportdeclaration (2)
export{declaration-seq(オプション)} (3)
export(オプション)importmodule-nameattr(オプション); (4)
export(オプション)importmodule-partitionattr(オプション); (5)
export(オプション)importheader-nameattr(オプション); (6)
module ; (7)
module : private ; (8)
1) モジュール宣言。 現在の翻訳単位がモジュールユニットであることを宣言します。
2,3) エクスポート宣言。 declaration または declaration-seq で宣言されたすべての名前空間スコープの宣言をエクスポートします。
4,5,6) インポート宣言。 モジュールユニット/モジュールパーティション/ヘッダユニットをインポートします。
7)グローバルモジュールフラグメントを開始します。
8)プライベートモジュールフラグメントを開始します。
close