Description
To support the MathBackend abstraction layer and improve memory efficiency for heritage science imaging (e.g., volumetric data), we are upgrading the project requirement to C++20. This version provides the necessary architectural tools (Concepts, Spans) while maintaining broad compatibility with Apple Clang and older HPC environments.
Tasks
Motivation
C++20 strikes the best balance between modern architectural safety (Concepts) and library reach. This ensures OpenABF remains accessible to macOS users while gaining the performance benefits of zero-copy memory views.
Description
To support the
MathBackendabstraction layer and improve memory efficiency for heritage science imaging (e.g., volumetric data), we are upgrading the project requirement to C++20. This version provides the necessary architectural tools (Concepts, Spans) while maintaining broad compatibility with Apple Clang and older HPC environments.Tasks
CMakeLists.txttotarget_compile_features(OpenABF INTERFACE cxx_std_20).ABF.hppandHalfEdgeMesh.hppto usestd::span<T>for data views, eliminating unnecessarystd::vectorcopies during matrix assembly.kokkos/mdspanreference implementation (or similar) to provide 3D volume access ergonomics without requiring native C++23 support.Motivation
C++20 strikes the best balance between modern architectural safety (Concepts) and library reach. This ensures OpenABF remains accessible to macOS users while gaining the performance benefits of zero-copy memory views.