Thread (2 messages) 2 messages, 2 authors, 2023-08-10

Re: [PATCH] describe: fix --no-exact-match

From: Jeff King <hidden>
Date: 2023-08-10 00:26:42

On Wed, Aug 09, 2023 at 12:07:07PM -0700, Junio C Hamano wrote:
But I am failing to imagine how the calling side actually would look
like.  Can we do something along the lines of

    #define OPT_CALLBACK(s, l, v, a, h, cb)
	.short_name = (s),
	.long_name = (l),
	.value_ ## typeof(v) = &v,
	.help = (h),
	.callback = (cb),

with a clever CPP trick?  It sounds like either too much churn or
too much magic or both, at least to me.
Sadly, I think "typeof" is not sufficiently portable, and there is no
replacement. You'd have to do something like:

  int my_foo;
  ...
  OPT_CALLBACK('f', "foo", int, &my_foo, ...etc);

Not great, but it might not be _too_ bad given that most helpers like
OPT_BOOL() can just say "int" behind the scenes.

That said, I don't recall these void pointers being a large source of
errors in the past. So while it's a fun type-system puzzle, the
effort/reward ratio might not be favorable.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help