Date: Sat, 10 Jan 2026 12:40:26 -0500
I'm open to a better name.
Right now, the standard restricts user-defined constructors from using `= default`, which is why I chose that name.
Currently, the only constructors that can be `= default` are the default, copy, and move constructors. All other constructors are called user-defined constructors.
So maybe adding another non-user-defined constructor would be OK, but honestly, I'm already a bit shaky about using constructors, because most C++ programmers still don't understand the rules of the ones we already have (and that includes the AI programmers :-)
My initial thought was a keyword or attribute, but aside from the preexisting confusion about constructors, this makes the most sense.
> On Jan 10, 2026, at 11:46 AM, Jason McKesson via Std-Proposals <std-proposals_at_[hidden]> wrote:
>
> On Sat, Jan 10, 2026 at 11:08 AM Jarrad Waterloo via Std-Proposals
> <std-proposals_at_[hidden]> wrote:
>>
>> Is there going to be an equivalent "User-Defined Trivial Constructors"?
>
> That is a contradiction in terms. If it's user-defined, then it could
> do anything. If it's trivial, then it does trivial things. A trivial
> default constructor is a no-op. A trivial copy/move constructor does a
> bitwise copy.
>
> What could go into a user-defined constructor that's trivial besides
> *nothing*? If your user-defined trivial constructor takes parameters,
> what could a trivial constructor do with those parameters besides
> nothing?
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
Right now, the standard restricts user-defined constructors from using `= default`, which is why I chose that name.
Currently, the only constructors that can be `= default` are the default, copy, and move constructors. All other constructors are called user-defined constructors.
So maybe adding another non-user-defined constructor would be OK, but honestly, I'm already a bit shaky about using constructors, because most C++ programmers still don't understand the rules of the ones we already have (and that includes the AI programmers :-)
My initial thought was a keyword or attribute, but aside from the preexisting confusion about constructors, this makes the most sense.
> On Jan 10, 2026, at 11:46 AM, Jason McKesson via Std-Proposals <std-proposals_at_[hidden]> wrote:
>
> On Sat, Jan 10, 2026 at 11:08 AM Jarrad Waterloo via Std-Proposals
> <std-proposals_at_[hidden]> wrote:
>>
>> Is there going to be an equivalent "User-Defined Trivial Constructors"?
>
> That is a contradiction in terms. If it's user-defined, then it could
> do anything. If it's trivial, then it does trivial things. A trivial
> default constructor is a no-op. A trivial copy/move constructor does a
> bitwise copy.
>
> What could go into a user-defined constructor that's trivial besides
> *nothing*? If your user-defined trivial constructor takes parameters,
> what could a trivial constructor do with those parameters besides
> nothing?
> --
> Std-Proposals mailing list
> Std-Proposals_at_[hidden]
> https://lists.isocpp.org/mailman/listinfo.cgi/std-proposals
Received on 2026-01-10 17:40:41
