I imagine this creates a std::tuple, which causes a lot of template instantiations and is the main offender for debug compile-times though. But yes, that's pretty much what I'm looking for :-)
It is not an std::tuple, but the moral equivalent. I haven't tested the compile time beyond trivial tests, but it not going to be great. The $ macro itself expands to a non-trivial amount of code.
Comments
"Easy" to do if you are willing to put up with macros:
Note the macro is $, tup is just a C++ function. It doesn't handle your .bar case, but would be very easy to extend tup to handle initializer lists.(No, I do not use it in production, it is mostly a fun curiosity, but yes, I wish lightweight named tuples were part of the language).
I imagine this creates a std::tuple, which causes a lot of template instantiations and is the main offender for debug compile-times though. But yes, that's pretty much what I'm looking for :-)
It is not an std::tuple, but the moral equivalent. I haven't tested the compile time beyond trivial tests, but it not going to be great. The $ macro itself expands to a non-trivial amount of code.