#ifdef DEAL_II_WITH_ARBORX
# include <deal.II/arborx/access_traits.h>
# include <deal.II/arborx/distributed_tree.h>
-#else
-template <int dim, typename Number>
-class BoundingBox;
-
-namespace ArborXWrappers
-{
- class DistributedTree
- {
- public:
- template <int dim, typename Number>
- DistributedTree(const MPI_Comm &,
- const std::vector<BoundingBox<dim, Number>> &);
- template <typename QueryType>
- std::pair<std::vector<std::pair<int, int>>, std::vector<int>>
- query(const QueryType &queries);
- };
- class BoundingBoxIntersectPredicate
- {};
-} // namespace ArborXWrappers
#endif
#ifdef DEAL_II_WITH_CGAL
DEAL_II_NAMESPACE_OPEN
+#ifndef DEAL_II_WITH_ARBORX
+
+// If we configured without ArborX, we still need to have a couple of
+// dummy types that we can reference in code below. They do not
+// actually do anything useful.
+template <int dim, typename Number>
+class BoundingBox;
+
+namespace ArborXWrappers
+{
+ class DistributedTree
+ {
+ public:
+ template <int dim, typename Number>
+ DistributedTree(const MPI_Comm &,
+ const std::vector<BoundingBox<dim, Number>> &);
+
+ template <typename QueryType>
+ std::pair<std::vector<std::pair<int, int>>, std::vector<int>>
+ query(const QueryType &queries);
+ };
+
+ class BoundingBoxIntersectPredicate
+ {};
+} // namespace ArborXWrappers
+#endif
+
namespace GridTools
{