Date: Mon, 26 Oct 2026 16:34:36 -0700
>> Which proposals are you referring to?
It was, "P3394R4, Annotations for Reflection" and P3795R2 that were adopted
in C++26. So this is what C++ programming looks like now:
```
struct Args {
[[=clap::Help("Name of the person to greet")]]
[[=clap::Short, =clap::Long]]
std::string name;
[[=clap::Help("Number of times to greet")]]
[[=clap::Short, =clap::Long]]
int count = 1;
};
```
Personally, I'm down for it. After writing macros for all this in C++98,
and seeing enough people crater writing introspection without language
support, I think language support is great.
This is going to disrupt the current ecosystem around C++ script bindings
because they have had to rely on complex template metaprogramming that
takes a relatively long time to compile and can generate bad code.
The point I was initially trying to make, is that these attributes allow
you to describe a command language. And that implementing a "command
language" is very generic, and I would like something that consumes a
command language to be able to discover it in a generic way too.
E.g. how do I enumerate the functions in a previously compiled module,
scanning for those designated as being that modules commands and generate
the flavor of bindings expected for those? I figure, at this point, it is
just a question of whether the standard commits to a few attribute names
for commands and how to discover them or Google picks a standard and we
copy that.
On Sun, Oct 25, 2026 at 9:53 AM Bjorn Reese via Std-Proposals <
std-proposals_at_[hidden]> wrote:
> On 10/24/26 22:06, A Johnston via Std-Proposals wrote:
>
> > I only have one major complaint that is unresolved in the online
> > discussions around attributes proposals that I have read:
>
> Which proposals are you referring to?
>
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>
It was, "P3394R4, Annotations for Reflection" and P3795R2 that were adopted
in C++26. So this is what C++ programming looks like now:
```
struct Args {
[[=clap::Help("Name of the person to greet")]]
[[=clap::Short, =clap::Long]]
std::string name;
[[=clap::Help("Number of times to greet")]]
[[=clap::Short, =clap::Long]]
int count = 1;
};
```
Personally, I'm down for it. After writing macros for all this in C++98,
and seeing enough people crater writing introspection without language
support, I think language support is great.
This is going to disrupt the current ecosystem around C++ script bindings
because they have had to rely on complex template metaprogramming that
takes a relatively long time to compile and can generate bad code.
The point I was initially trying to make, is that these attributes allow
you to describe a command language. And that implementing a "command
language" is very generic, and I would like something that consumes a
command language to be able to discover it in a generic way too.
E.g. how do I enumerate the functions in a previously compiled module,
scanning for those designated as being that modules commands and generate
the flavor of bindings expected for those? I figure, at this point, it is
just a question of whether the standard commits to a few attribute names
for commands and how to discover them or Google picks a standard and we
copy that.
On Sun, Oct 25, 2026 at 9:53 AM Bjorn Reese via Std-Proposals <
std-proposals_at_[hidden]> wrote:
> On 10/24/26 22:06, A Johnston via Std-Proposals wrote:
>
> > I only have one major complaint that is unresolved in the online
> > discussions around attributes proposals that I have read:
>
> Which proposals are you referring to?
>
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
>
Received on 2026-10-26 23:35:08
