d1faa8f626
...that were only detected now by GCC 13 trunk after <https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=431be04b8b6e31d950ddab340ed866d197d23d4d> "c++: implement P2468R2, the equality operator you are looking for", > sc/source/core/tool/interpr4.cxx: In member function ‘void ScInterpreter::ScTableOp()’: > sc/source/core/tool/interpr4.cxx:3608:58: error: C++20 says that these are ambiguous, even though the second is reversed: [-Werror] > 3608 | bool bReuseLastParams = (mrDoc.aLastTableOpParams == aTableOp); > | ^~~~~~~~ > In file included from sc/inc/document.hxx:32, > from sc/inc/externalrefmgr.hxx:23, > from sc/source/core/inc/interpre.hxx:28, > from sc/source/core/tool/interpr4.cxx:22: > sc/inc/tabopparams.hxx:76:10: note: candidate 1: ‘bool ScInterpreterTableOpParams::operator==(const ScInterpreterTableOpParams&)’ > 76 | bool operator ==( const ScInterpreterTableOpParams& r ) > | ^~~~~~~~ > sc/inc/tabopparams.hxx:76:10: note: candidate 2: ‘bool ScInterpreterTableOpParams::operator==(const ScInterpreterTableOpParams&)’ (reversed) > sc/inc/tabopparams.hxx:76:10: note: try making the operator a ‘const’ member function etc. Change-Id: I0c55daabbce61aefd762862f3b0e2e5d235c34b3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142698 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
86 lines
2.9 KiB
C++
86 lines
2.9 KiB
C++
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
/*
|
|
* This file is part of the LibreOffice project.
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "address.hxx"
|
|
|
|
#include <vector>
|
|
|
|
class ScFormulaCell;
|
|
|
|
struct ScInterpreterTableOpParams
|
|
{
|
|
ScAddress aOld1;
|
|
ScAddress aNew1;
|
|
ScAddress aOld2;
|
|
ScAddress aNew2;
|
|
ScAddress aFormulaPos;
|
|
::std::vector< ScFormulaCell* > aNotifiedFormulaCells;
|
|
::std::vector< ScAddress > aNotifiedFormulaPos;
|
|
bool bValid;
|
|
bool bRefresh;
|
|
bool bCollectNotifications;
|
|
|
|
ScInterpreterTableOpParams()
|
|
: bValid( false )
|
|
, bRefresh( false )
|
|
, bCollectNotifications( true )
|
|
{
|
|
}
|
|
|
|
ScInterpreterTableOpParams( const ScInterpreterTableOpParams& r )
|
|
: aOld1( r.aOld1 )
|
|
, aNew1( r.aNew1 )
|
|
, aOld2( r.aOld2 )
|
|
, aNew2( r.aNew2 )
|
|
, aFormulaPos( r.aFormulaPos )
|
|
, aNotifiedFormulaPos( r.aNotifiedFormulaPos )
|
|
, bValid( r.bValid )
|
|
, bRefresh( r.bRefresh )
|
|
, bCollectNotifications( r.bCollectNotifications )
|
|
{
|
|
}
|
|
|
|
ScInterpreterTableOpParams& operator =( const ScInterpreterTableOpParams& r )
|
|
{
|
|
aOld1 = r.aOld1;
|
|
aNew1 = r.aNew1;
|
|
aOld2 = r.aOld2;
|
|
aNew2 = r.aNew2;
|
|
aFormulaPos = r.aFormulaPos;
|
|
::std::vector< ScFormulaCell* >().swap( aNotifiedFormulaCells );
|
|
aNotifiedFormulaPos = r.aNotifiedFormulaPos;
|
|
bValid = r.bValid;
|
|
bRefresh = r.bRefresh;
|
|
bCollectNotifications = r.bCollectNotifications;
|
|
return *this;
|
|
}
|
|
|
|
bool operator ==( const ScInterpreterTableOpParams& r ) const
|
|
{
|
|
return
|
|
bValid && r.bValid &&
|
|
aOld1 == r.aOld1 &&
|
|
aOld2 == r.aOld2 &&
|
|
aFormulaPos == r.aFormulaPos ;
|
|
}
|
|
};
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|