C++ identifier with special meaning: module
(since C++20)
From cppreference.com
< cpp
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
C++ language
Flow control
Conditional execution statements
Iteration statements (loops)
Jump statements
Functions
Function declaration
Lambda function expression
Dynamic exception specifications (until C++17*)
Exceptions
Namespaces
Types
Specifiers
Storage duration specifiers
Initialization
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
Miscellaneous
General topics
inline
specifier noexcept
specifier (C++11)typedef
declaration Keywords
Identifiers with special meaning
(C++11)
(C++11)
(*)
(C++20)
(C++11)
(C++11)
(C++20)
(C++20)
(C++11)
(C++20)
(C++26)
(C++20)
(C++20)
(C++20)
(C++11)
Contents
[edit] Usage
-
module
declaration: declares that the current translation unit is a module unit - Starts a global module fragment of a module unit
- Starts a private module fragment of a module unit
[edit] Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_modules |
201907L |
(C++20) | Modules — core language support |
[edit] Example
module; // starts a global module fragment #include <string> export module foo; // ends a global module fragment // declares the primary module interface unit for named module 'foo' // starts a module unit purview export std::string f(); module : private; // ends the portion of the module interface unit that // can affect the behavior of other translation units // starts a private module fragment std::string f() { return "foo"; }