C++ Logo

std-proposals

Advanced search

Re: [std-proposals] Bindings generation attributes and the requirements of an embedded command processor

From: A Johnston <ajohnston54637_at_[hidden]>
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
>

Received on 2026-10-26 23:35:08