Skip to content

MacOS Build with USE_SYSTEM_EIGEN3=ON Error on #include <Eigen/Core> in cpp/open3d/ml/impl/misc/VoxelPooling.h #7499

Description

@essandess

Checklist

Steps to reproduce the issue

I’ve submitted a MacPorts Portfile for Open3D at macports/macports-ports#32787

When building with USE_SYSTEM_EIGEN3=ON, there’s a clang++ signature error on #include <Eigen/Core> in cpp/open3d/ml/impl/misc/VoxelPooling.h

A fix is in this patch of cpp/open3d/ml/impl/misc/VoxelPooling.h, which specifies Substitution Failure Is Not An Error to the preprocessor:

--- ./cpp/open3d/ml/impl/misc/VoxelPooling.h	2026-05-19 09:34:55
+++ ./cpp/open3d/ml/impl/misc/VoxelPooling.h	2026-05-19 13:31:10
@@ -35,10 +35,14 @@
                       "CENTER is not allowed for feature vectors");
     }
 
-    template <class Derived, class Derived2, class Derived3>
+    // SFINAE to fix `#include <Eigen/Core>`
+    template <class Derived, class Derived2, class Derived3,
+              typename = typename std::enable_if<
+                  std::is_base_of<Eigen::ArrayBase<Derived3>, Derived3>::value>::type>
     inline void AddPoint(const Eigen::MatrixBase<Derived>& pos,
                          const Eigen::MatrixBase<Derived2>& voxel_center,
-                         const Eigen::ArrayBase<Derived3>& feat) {
+                         // const Eigen::ArrayBase<Derived3>& feat) {
+                         const Derived3& feat) {
         bool new_nearest_neighbor = false;
         TReal sqr_d = 0;
         if (POS_FN == NEAREST_NEIGHBOR || FEAT_FN == NEAREST_NEIGHBOR) {

Error message

Signature error on #include <Eigen/Core> in cpp/open3d/ml/impl/misc/VoxelPooling.h

Open3D, Python and System information

- Operating system: macOS 26
- Python version: Python 3.14`
- Open3D version: 0.19.0`
- System architecture: arm64
- Is this a remote workstation?: no
- How did you install Open3D?: build from source
- Compiler version (if built from source): clang

Additional information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions