Skip to main content

C Plus Plus

Modules in C++ 20

Modules are a new feature in C++20 that allow you to group related code together into a single unit. This can make your code more modular and easier to understand.

Introduction

Modules are a new feature in C++20 that allow you to group related code together into a single unit. This can make your code more modular and easier to understand. Modules are also more efficient than traditional header files, because they only need to be compiled once, even if they are used by multiple source files.

In this article, we will discuss the following topics:

  • What are modules in C++?
  • How to use modules in C++
  • Compilation steps with g++
  • Examples of using modules
  • Conclusion

What are modules in C++?

Modules are a new feature in C++20 that allow you to group related code together into a single unit. This can make your code more modular and easier to understand. Modules are also more efficient than traditional header files, because they only need to be compiled once, even if they are used by multiple source files.

A module is a self-contained unit of code that can be imported into other source files. A module can contain functions, classes, variables, and other declarations. Modules are also namespace-aware, which means that you can use the import keyword to import a module and its namespace into your code.

How to use modules in C++

To use modules in C++, you need to add the module keyword to the beginning of your source file. You also need to specify the name of the module, which is the same as the filename. For example, the following code defines a module called math:

Code snippet

// math.cpp
export module math;
export int add(int x, int y){
    return x + y;
}
export namespace math {  // this function will be called with namespace
    auto sub(auto x, auto y) -> decltype(x-y) {
        return x - y;  
    }   
}
void print() {} // this function will not be exported