Sujet : Re: Named arguments in C
De : already5chosen (at) *nospam* yahoo.com (Michael S)
Groupes : comp.lang.cDate : 04. Jul 2024, 13:02:49
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20240704150249.00004c4d@yahoo.com>
References : 1 2 3 4 5 6
User-Agent : Claws Mail 4.1.1 (GTK 3.24.34; x86_64-w64-mingw32)
On Thu, 4 Jul 2024 13:12:18 +0200
Bonita Montero <
Bonita.Montero@gmail.com> wrote:
Am 02.07.2024 um 18:53 schrieb Ivan Farlenkov:
I am a fan of being able to name parameters in languages that
allow it. I am quite confident that this will never come to C. It
/might/ make it into C++, but as people have been writing
proposals to do so for 20 years at least, I am not holding my
breath.
You can sort of already do it in C by using designated initializers
and macros
#define foo(A, B, C, ...) do{\
stuct technical technical={\
var1=default1,\
var2=default2,\
var3=default3 __VA_OPT__(,)\
__VA_ARGS__\
}\
actual_foo(A, B, C, technical.var1, technical.var2,
technical.var3)\ }while(0)
What an anquated language that this needs macros.
I don't suppose that somebody likes this macro stuff or takes it
seriously. It's just a PoC.
But at least we can imagine how named call arguments can be added to
"antiquated language" if The Committee decides to do so. It would not
be easy, but clash with other language features is avoidable.
Not so with "modern language" that your like. For "modern language" the
clash with other [mis]features will be unavoidable and fatal.
[O.T.]
If I am not mistaken "modern language" is so twisted that it can't even
have proper designated initializers for struct (proper = arbitrary
order). I don't know what is the reason for that, but the reason exists.