include/tools/gen.hxx |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

New commits:
commit 4a3da80a9eb1a95a4cd3c8a98a37d480d7a29bba
Author:     Stephan Bergmann <sberg...@redhat.com>
AuthorDate: Wed Aug 2 12:25:09 2023 +0200
Commit:     Stephan Bergmann <sberg...@redhat.com>
CommitDate: Wed Aug 2 14:11:56 2023 +0200

    Make RectangleTemplate comparison operators symmetric
    
    ...to avoid
    
    > In file included from tools/qa/cppunit/test_rectangle.cxx:10:
    > workdir/UnpackedTarball/cppunit/include/cppunit/TestAssert.h:59:18: 
error: ISO C++20 considers use of overloaded operator '==' (with operand types 
'const tools::Rectangle' and 'const tools::Rectangle') to be ambiguous despite 
there being a unique best viable function 
[-Werror,-Wambiguous-reversed-operator]
    >         return x == y;
    >                ~ ^  ~
    > workdir/UnpackedTarball/cppunit/include/cppunit/TestAssert.h:166:30: 
note: in instantiation of member function 
'CppUnit::assertion_traits<tools::Rectangle>::equal' requested here
    >   if ( !assertion_traits<T>::equal(expected,actual) ) // lazy toString 
conversion...
    >                              ^
    > tools/qa/cppunit/test_rectangle.cxx:70:9: note: in instantiation of 
function template specialization 'CppUnit::assertEquals<tools::Rectangle>' 
requested here
    >         CPPUNIT_ASSERT_EQUAL(aRect, aRect2);
    >         ^
    > workdir/UnpackedTarball/cppunit/include/cppunit/TestAssert.h:333:17: 
note: expanded from macro 'CPPUNIT_ASSERT_EQUAL'
    >   ( CPPUNIT_NS::assertEquals( (expected),              \
    >                 ^
    > include/tools/gen.hxx:817:18: note: ambiguity is between a regular call 
to this operator and a call with the argument order reversed
    >     bool         operator == ( const RectangleT& rRect ) const
    >                  ^
    
    when building with -std=c++20 (cf.
    <https://gerrit.libreoffice.org/c/core/+/155121> "Bump baseline to C++20")
    against at least Xcode 14.3.1.
    
    It was presumably an accidental oversight that
    b6b26421a1029b18b48b69dbdac4bb70fb622604 "split Point/Size/Rectangle into
    AbsoluteScreenPixel* types" made these operators asymmetric in the first 
place.
    
    Change-Id: Ic1f08b79fbd727d972ce95c3f21eab3a2a74f942
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155221
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sberg...@redhat.com>

diff --git a/include/tools/gen.hxx b/include/tools/gen.hxx
index 0555889e0cb2..246d7913cb4e 100644
--- a/include/tools/gen.hxx
+++ b/include/tools/gen.hxx
@@ -814,14 +814,14 @@ public:
     bool                Contains( const RectangleT& rRect ) const { return 
RectangleTemplateBase::Contains(rRect); }
     bool                Overlaps( const RectangleT& rRect ) const { return 
RectangleTemplateBase::Overlaps(rRect); }
 
-    bool         operator == ( const RectangleT& rRect ) const
+    bool         operator == ( const RectangleTemplate& rRect ) const
     {
         return (mnLeft   == rRect.mnLeft   ) &&
                (mnTop    == rRect.mnTop    ) &&
                (mnRight  == rRect.mnRight  ) &&
                (mnBottom == rRect.mnBottom );
     }
-    bool         operator != ( const RectangleT& rRect ) const
+    bool         operator != ( const RectangleTemplate& rRect ) const
     {
         return (mnLeft   != rRect.mnLeft   ) ||
                (mnTop    != rRect.mnTop    ) ||

Reply via email to