Mike Stump wrote:
Now, what are the benefits and weaknesses between mine and your, you don't have to carry around type_context the way mine would, that's a big win. You don't have to do anything special move a reference to a type around, that's a big win. You have to do a structural walk if there are any bits that are used for type equality.
No, these bits can be placed together - a structural walk is only necessary when (some of) these bits themselves need more scrutiny - i.e. on at least one of the sides some of the constituent parts is partially incomplete. And I can't see how you can avoid that complexity.
In my scheme, I don't have to. I just have a vector of items, they are right next to each other, in the same cache line.
Again, the equality of the items might not not trivial.