Skip to content

LeafGridViewOrdering has public, non-virtual destructor

Description

When compiling PDELab code with Clang 6+ or Apple Clang 10+ and the -Wall warning flag, the compiler complains about the destructor of the LeafGridViewOrdering and its base classes:

warning: destructor called on non-final 'Dune::PDELab::LeafGridViewOrdering<[...]>' that has virtual functions but non-virtual destructor [-Wdelete-non-abstract-non-virtual-dtor]

According to the CPP Core Guidelines, a class with a virtual function should have a virtual or protected destructor. However, all of the Ordering classes seem to have default public destructors. I'm not sure which of the recommended cases is appropriate for PDELab. If you give me a hint, I can raise an MR to resolve the issue.

Backtrace

Here's a complete warning backtrace: backtrace.log