On Fri, 13 May 2022, 19:16 Jonathan Wakely, <jwakely.gcc@xxxxxxxxx> wrote: > > > On Fri, 13 May 2022, 19:13 Foelsche, Peter, <Peter_Foelsche@xxxxxxxxxx> > wrote: > >> I'm the author of some software which dumps out C++ code to be compiled >> with g++. >> This code sometimes contains many different and many long tuples. I >> deduced that long tuples cause rather long compile times. >> I already wrote some compression, which collects identical entries in >> such a tuple and moves them into an array. >> But this compression reduces (run-time) performance. >> I already wrote different tuple implementations, and one of the compiles >> much faster than the regular provided std::tuple. >> What could be the criterium for such a tuple implementation, which makes >> g++ take more or less compile time assuming the same code using this tuple? >> > > Identical object layout on all targets, meaning size, alignment, > base-class order, etc. It needs to be ABI-compatible. > I interpreted the question as asking what would be needed to replace the existing std::tuple. I guess you mean what aspects of the implementation affect compile time. The number of template instantiations, and the number of overload candidates for name lookup are probably important.