*/
Deleter(AlignedVector<T> *owning_object);
+#ifdef DEAL_II_WITH_MPI
/**
* Constructor. When this constructor is called, it installs an
* action that corresponds to MPI-based shared memory allocation that
T * aligned_shmem_pointer,
MPI_Comm shmem_group_communicator,
MPI_Win shmem_window);
-
+#endif
/**
* The operator called by `std::unique_ptr` to destroy the data it
delete_array(const AlignedVector<T> *owning_aligned_vector, T *ptr) = 0;
};
+#ifdef DEAL_II_WITH_MPI
+
/**
* A class that implements the deleter action for MPI shared-memory
* allocated data.
MPI_Comm shmem_group_communicator;
MPI_Win shmem_window;
};
+#endif
/**
* A pointer to the object that facilitates the actual action of
{}
+# ifdef DEAL_II_WITH_MPI
template <typename T>
inline AlignedVector<T>::Deleter::Deleter(AlignedVector<T> *owning_object,
shmem_window))
, owning_aligned_vector(owning_object)
{}
-
+# endif
template <typename T>
}
+# ifdef DEAL_II_WITH_MPI
template <typename T>
inline AlignedVector<T>::Deleter::MPISharedMemDeleterAction::
AssertThrowMPI(ierr);
}
+# endif
+
template <class T>
inline AlignedVector<T>::AlignedVector()