Skip to content

Portability fixes to compile with XCode / libc++

  • Add Dune::PDELab::Execution execution policies
    • Internally use PSTL if available or oneapi::dpl as fallback
  • Ensure std::format is available before use (empty header exists in some libc++ versions)
  • If std::atomic_ref is not available fall back to boost::atomic_ref if available, otherwise throw at runtime
  • Add typename where needed
  • Add & to fix "cannot overload a member function without a ref-qualifier with a member function with ref-qualifier"
  • consteval -> constexpr ("call to consteval function is not a constant expression" error: probably a compiler bug in appleclang)
  • Ensure moved-from std::function is empty
    • after being moved from it is only guaranteed to be in a valid but unspecified state, not necessarily empty
    • for gcc/clang implementations it is empty, but apparently not for appleclang
  • Always use forward_range for SparseDynamicRange/DenseDynamicRange
    • they don't fulfill the requirements for tbb::blocked_range
    • (a requires expression that constructs a tbb::blocked_range nonethless returns True on appleclang, only for compilation to fail later)
  • Avoid calling constructors without all arguments (c++20 feature not yet supported by appleclang)

Merge request reports