diff --git a/dumux/linear/istlsolverregistry.hh b/dumux/linear/istlsolverregistry.hh index f32ae4a64783214334d09c011fa01f0746aba960..2746af7d0ee57d2a90b3cd5da72bff21fb8cf12d 100644 --- a/dumux/linear/istlsolverregistry.hh +++ b/dumux/linear/istlsolverregistry.hh @@ -35,11 +35,16 @@ * DUMUX_REGISTER_PRECONDITIONER("mypreconditioner", Dumux::MultiTypeBlockMatrixPreconditionerTag, Dune::defaultPreconditionerBlockLevelCreator<Dumux::MyPreconditioner, 1>()); * Expicitly specifying the namespaces is required. * Set parameter Preconditioner.Type to "mypreconditioner" to use it through the factory. + * + * In the macro implementation, the final static_assert forces implementers + * to put a semicolon after every DUMUX_REGISTER_PRECONDITIONER macro call (cf. example) + * and avoids a compiler warning for an empty line semicolon at the same time */ #define DUMUX_REGISTER_PRECONDITIONER(name, tag, ...) \ } namespace Dune { \ DUNE_REGISTRY_PUT(tag, name, __VA_ARGS__); \ -} namespace Dumux { \ +} namespace Dumux { \ +static_assert(true, "Require semicolon after macro call") namespace Dumux { namespace {