A Slice module maps to a C++ namespace. The mapping preserves the nesting of the Slice definitions. For example:
Slice
module M1 { module M2 { // ... }; // ... }; // ... module M1 { // Reopen M1 // ... };
This definition maps to the corresponding C++ definition:
C++
namespace M1 { namespace M2 { // ... } // ... } // ... namespace M1 { // Reopen M1 // ... }
If a Slice module is reopened, the corresponding C++ namespace is reopened as well.