office-gobmx/basegfx
Stephan Bergmann 41ab6a5dfa struct SN needs a strict weak ordering operator <
...so it can be used with std::sort in impSolve() (further down in
basegfx/source/polygon/b2dpolypolygoncutter.cxx).  At least on macOS with a
LLVM 20 trunk libc++ in hardened mode, JunitTest_sfx2_complex failed with

> ~/llvm/inst/bin/../include/c++/v1/__debug_utils/strict_weak_ordering_check.h:59: assertion __comp(*(__first + __a), *(__first + __b)) failed: Your comparator is not a valid strict-weak ordering

To simplify the new implementation of struct SN operator <, add a B2DPoint
operator <=> (but whose implementation would cause

> In file included from /home/tdf/lode/jenkins/workspace/android_arm/basegfx/source/curve/b2dbeziertools.cxx:21:
> In file included from /home/tdf/lode/jenkins/workspace/android_arm/include/basegfx/curve/b2dcubicbezier.hxx:22:
> /home/tdf/lode/jenkins/workspace/android_arm/include/basegfx/point/b2dpoint.hxx:129:41: error: invalid operands to binary expression ('tuple<const double &, const double &>' and 'tuple<const double &, const double &>')
>         { return std::tie(a.mnX, a.mnY) <=> std::tie(b.mnX, b.mnY); }
>                  ~~~~~~~~~~~~~~~~~~~~~~ ^   ~~~~~~~~~~~~~~~~~~~~~~

etc. on Android with NDK 23.2, see
<https://ci.libreoffice.org/job/gerrit_android_arm/43174/>, so work around that
in the implementation for now).

Change-Id: I9f46d39dc9e9024fe9ac59413c44e49642282c8b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/175622
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
2024-12-09 15:13:46 +01:00
..
inc/pch
qa
source struct SN needs a strict weak ordering operator < 2024-12-09 15:13:46 +01:00
test Extended loplugin:ostr: Automatic rewrite O[U]StringLiteral: basegfx 2023-10-19 13:37:47 +02:00
CppunitTest_basegfx.mk Use less boost_headers in low level libraries 2024-03-06 21:23:17 +01:00
IwyuFilter_basegfx.yaml
Library_basegfx.mk MCGR: consolidations/cleanups for changes so far 2023-05-15 15:19:53 +02:00
Makefile
Module_basegfx.mk
README.md

Algorithms and Data Types for Graphics

Algorithms and data types for graphics (e.g. polygons, vectors, matrices and the like - see that used in canvas).