元々昨年2月のリリースが計画されていた、C++20は最終的な技術的承認を受けており、年内に発表される予定だ。C++20には、主要な新機能の中にModules、Coroutines、およびConceptsが含まれる。
Modulesは、ヘッダファイルを不要にすることも目的とするコードをカプセル化する新しい方法を導入する。Herb Sutter氏は、Modulesの重要性を軽視することはできないと述べた:
C++にユーザが名前付きカプセル化境界を定義できる新機能を追加したのは、約35年ぶりです。
変数、関数、クラスに加えて、Modulesは、プログラマがエンティティに名前を付けて、なんらかの実装を隠す方法を提供する。これまでは、変数を使用して値をカプセル化し、関数を使用して動作をカプセル化し、クラスを使用して状態と動作をカプセル化することができた。Modulesは、変数、関数、クラスをすべて一緒にカプセル化するメカニズムを提供する。
これが、Modulesが将来のC++の進化に続けてさらなる改善を可能にする根本的な理由です。
これは、関数とその使用法を別のファイルにエクスポートする単純なModulesを定義する方法である:
// math.cppm
export module mod1;
export int identity(int arg) {
return arg;
}
// main.cpp
import mod1;
int main() {
identity(100);
}
#デベロップメント #ニュース #c++