Due to missing copy elision in c++14 the PETSc Comm object
DistributedCommunication is required to have a copy or move constructor in the statement (
, comm_(CommunicationCreator<Comm>::create(static_cast<Super const&>(*this), name + "->solver"))
Since the member
Dune::RemoteIndices declares a private copy and no move constructor we need to wrap it into a
unique_ptr to provide move semantics.