A Slice module maps to a C++ namespace. The mapping preserves the nesting of the Slice definitions. For example:

{zcode:slice}
module M1 {
    module M2 {
        // ...
    };
    // ...
};

// ...

module M1 {     // Reopen M1
    // ...
};
{zcode}

This definition maps to the corresponding C++ definition:

{zcode:cpp}
namespace M1 {
    namespace M2 {
        // ...
    }
    // ...
}

// ...

namespace M1 {  // Reopen M1
    // ...
}
{zcode}

If a Slice module is reopened, the corresponding C++ namespace is reopened as well.

See Also