#1624 Transition from EntityPointer to Entity broken for not-yet-ported grids
Metadata
Property | Value |
---|---|
Reported by | Christian Engwer (christi@conan.iwr.uni-heidelberg.de) |
Reported at | Apr 20, 2015 14:22 |
Type | Bug Report |
Version | Git (pre2.4) [cmake] |
Operating System | Unspecified / All |
Last edited by | Carsten Gräser (graeser@math.fu-berlin.de) |
Last edited at | Jun 26, 2015 09:45 |
Closed by | Carsten Gräser (graeser@math.fu-berlin.de) |
Closed at | Jun 26, 2015 09:45 |
Closed in version | Unknown |
Resolution | Fixed |
Comment | Fixed in master and 2.4 |
Description
As described on the list:
I wanted to get rid of deprecation warning in PDELab and observed and replace things like intersectionIterator->outside()->type() by intersectionIterator->outside().type()
Now the problem occures, that for most of the code I have a working version without deprecation warnings, but when using ALUgrid, the code breaks, as ALUGrid is not updated yet. This is a general issue, because it blocks the upgrade path. How shall we proceed? One option would be to extend the EntityPointer-wrapper such that we can call all methods of the entity by forwarding the call internally. Are there alternatives? Or is there an alternative upgrade path?
This happens for all grid managers, which are not yet ported.
I have a proposal for a solution. Basically I added all entity methods to the entitypointer and forward them; some SFINAEs take care that the additional codim0 methods are only available on codim0 pointers.
The proposed fix in the dune-grid branch feature/fix-entityptr-backwardscompatibility
Opinions?! If there are no strong objection, I suggest to merge/cherry-pick this onto the release branch, as it helps users in the transition towards 3.0. The changes are really small and shouldn't effect any other code. The methods are deliberately not marked as deprecated methods, as they are only part of the deprecated entitypointer and should should help users in producing code with minimal deprecation warnings. If the user uses these methods, he is fully 3.0 ready, once the underlying grid is ported.
On the other hand, the question might arise, which grids are ported and which not?!...
In the master I'd merge it for a short period, but remove it, together with the entitypointer, quite soon.