FieldVector<T, ...> should be trivially copyable for trivially copyable T
FieldVector<T, ...> should be a trivially copyable type if
T is trivially copyable. That allows to copy it with
memcpy (or MPI communication functions which should have similar requirements).
FieldVector<T, ...> should also be a trivial type. This just requires a trivial default constructor in additional to the requirements of a trivially copyable type.
This would also address this warning when building dune-grid:
dune-grid/dune/grid/uggrid/uglbgatherscatter.hh:19:15: warning: 'void* memcpy(void*, const void*, size_t)' writing to an object of type 'class Dune::FieldVector<double, 2>' with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]