IdSet is (type-wise) not self contained
Description
While writing the different components that constitute a Grid concept, I came across with the fact that the IdSet
is not self-contained. This is in the sense that one cannot know the arguments of the IdSet
functions without having other classes at hand (e.g. the grid). I solve that in the MR by exporting the grid type. But this is not optimal and I think it should be solved before merging !377 (merged).
Why is this important?
Because having self-contained grid interface components simplifies grid implementations by allowing separation of concerns (at least syntax-wise).
Proposal
Export definitions that allow the IdSet
to be self-contained. These are basically two:
dimension
Codim<int codim>
Is this backwards compatible?
No. But If there is a need for that, the new definitions may be exported by the duck-typed interface since it receives the grid implementation as a template argument.