Skip to content

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.

Edited by Santiago Ospina De Los Ríos