Add support for C++23 multidimensional subscript operator

I'm not sure where to put tests for this, assuming they're needed. They also wouldn't run in CI anyway since CI only exercises the C++17 codepaths.

See merge request libeigen/eigen!2053
This commit is contained in:
Tyler Veness
2025-11-04 07:03:04 +00:00
committed by Rasmus Munk Larsen
parent b6fcddccfc
commit f95b4698fc
6 changed files with 47 additions and 1 deletions

View File

@@ -89,6 +89,11 @@ class TriangularBase : public EigenBase<Derived> {
return coeffRef(row, col);
}
#if __cpp_multidimensional_subscript >= 202110L
EIGEN_DEVICE_FUNC inline Scalar operator[](Index row, Index col) const { return operator()(row, col); }
EIGEN_DEVICE_FUNC inline Scalar& operator[](Index row, Index col) { return operator()(row, col); }
#endif
#ifndef EIGEN_PARSED_BY_DOXYGEN
EIGEN_DEVICE_FUNC inline const Derived& derived() const { return *static_cast<const Derived*>(this); }
EIGEN_DEVICE_FUNC inline Derived& derived() { return *static_cast<Derived*>(this); }