News for hackers. Stuff that matters.
Re:C++26: Pack Indexing by a_t48 on Friday January 24, 2025 @03:32PM (#42816640)
Pretty please.

    [&]<std::size_t... I>(std::index_sequence<I...>) {
      (SetupInput<I>(options, transport_manager, subscriber_queues[I], thread_pool, templated_topic_to_runtime_topic),
       ...);
    }(std::make_index_sequence<INPUT_COUNT>());
would be a lot more readible as

    for constexpr( size_t I = 0; I < INPUT_COUNT; I++ )
      SetupInput<I>(options, transport_manager, subscriber_queues[I], thread_pool, templated_topic_to_runtime_topic);
    }
Yes, there's some syntax snags around it (right now I looks mutable, something like `for (constexpr size_t I : INPUT_COUNT)` might be better), but there has to be some sane middleground.
Re:C++26: Pack Indexing by moonshadow565 on Friday January 24, 2025 @04:18PM (#42817018)
P1061 is in C++26 so you can instead do:

  const auto [...I] = std::make_index_sequence<INPUT_COUNT>{};
  ((SetupInput<I>(options, transport_manager, subscriber_queues[I], thread_pool, templated_topic_to_runtime_topic)),...);
yay!
Re:C++26: Pack Indexing by foota on Friday January 24, 2025 @05:23PM (#42817509)
Oh, that is nice!
Re:C++26: Pack Indexing by a_t48 on Saturday January 25, 2025 @02:32AM (#42820157)
That's better, yeah. I still prefer plain ole for loops, but that's much better.
Re:C++26: Pack Indexing by spacechild1 on Friday January 24, 2025 @04:37PM (#42817159)
> right now I looks mutable, something like `for (constexpr size_t I : INPUT_COUNT)` might be better

I thought the same, but then you lose the ability to control the increment step. For example, one might want to iterate pairwise.

Regarding syntax, you could mandate that the loop variable has to be declared `constexpr` as well, which makes it clear that it can't be modified in the loop body.

Re:C++26: Pack Indexing by a_t48 on Friday January 24, 2025 @10:00PM (#42819074)
You could make a temporary or use some std::range/span helper. Double constexpr would work, too. Feels gross in the same way template template does.