C++ Logo

std-proposals

Advanced search

Re: [std-proposals] [DRAFT PAPER] Allowing the establishment of namespace scopes in an export-declaration

From: Jason McKesson <jmckesson_at_[hidden]>
Date: Thu, 8 Sep 2022 20:58:19 -0400
On Thu, Sep 8, 2022 at 8:33 PM Zopolis0 via Std-Proposals
<std-proposals_at_[hidden]> wrote:
>
> > This means that by the time you get to your `export-declaration`,
> > there must have already been a `module-declaration`, which specified
> > the `module-name`.
>
> I don't see what you mean here.
> Are you saying that this is invalid:
>
> export module foo;
> //do_stuff
> export void things {}
>
> Because I use that in my code already.
> What I am proposing, in short, is to make this valid
>
> export module foo namespace bar
> //do_stuff
> export void things {}

That part at the top where you say `export module`? That grammar is
NOT an `export-declaration`. That is a `module-declaration`. That's
the name of the C++ grammar for that.

Your proposal changes the wrong piece of C++ grammar. That was my point.

Also, you changed the grammar wrong even if you were trying to change
`module-declaration`. A `module-declaration` looks like this:

> export-keyword(opt) module-keyword module-name module-partition(opt) attribute-specifier-seq(opt);

If you want to modify a module declaration, that is the grammar you
need to work with.

> I don't see how this is a significant deviation from the standard.

I don't see how your proposal is clear enough to be certain how it
intends to deviate from the standard.

Received on 2022-09-09 00:58:51