Apache OpenOffice (AOO) Bugzilla – Issue 17868
IRIX: dbaccess - ore than one operator "!=" matches the specified operands.
Last modified: 2010-03-29 20:57:49 UTC
CC -c -I. -I. -I../inc -I../../../source/inc -I../../../inc -I../../../unx/inc -I../../../unxirxm3.pro/inc -I. -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solver/645/unxirxm3.pro/inc/stl -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solver/645/unxirxm3.pro/inc/external -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solver/645/unxirxm3.pro/inc -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solenv/unxirxm3/inc -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solenv/inc -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/res -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solver/645/unxirxm3.pro/inc/stl -I/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/solenv/inc/Xp31 -I/usr/java2/include -I/usr/java2/include/irix -I/usr/java2/include/native_threads/include -I. -I../../../res -I. -O2 -g -LANG:ansi-for-init-scope=OFF -LANG:std -LANG:libc_in_namespace_std=ON -LANG:exceptions=ON -KPIC -DIRIX -DUNX -DVCL -DC730 -DC730 -DMIPS -DCVER=C730 -D_USE_NAMESPACE -DSTLPORT_VERSION=0x450 -D_USE_NAMESPACE=1 -DNEW_SOLAR -DSGI_STL -D__STL_THROW_RANGE_ERRORS -D__DMAKE -DUNIX -DCPPU_ENV=MipsPro -DSUPD=645 -DBUILD=8639 -DPRODUCT -DNDEBUG -DPRODUCT_FULL -DOSL_DEBUG_LEVEL=0 -DOPTIMIZE -DEXCEPTIONS_ON -DCUI -DSOLAR_JAVA -DSRX645 -DSHAREDLIB -D_DLL_ -DMULTITHREAD -w -o ../../../unxirxm3.pro/slo/TableDeco.o /build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/dbaccess/source/core/api/TableDeco.cxx if ( -e ../../../unxirxm3.pro/slo/TableDeco.o) touch ../../../unxirxm3.pro/slo/TableDeco.obj dmake: Error code 2, while making '../../../unxirxm3.pro/slo/CRowSetDataColumn.obj' cc-1324 CC: ERROR File = /build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/dbaccess/source/core/api/RowSetBase.cxx, Line = 261 More than one operator "!=" matches the specified operands. Built-in operator "pointer != pointer" has an overloading ambiguity. Function symbol function "dbaccess::ORowSetCacheIterator::operator!=(const std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator &) const" is ambiguous by inheritance. The operand types are: dbaccess::ORowSetCacheIterator != std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator. return ((m_nLastColumnIndex != -1) && m_aCurrentRow && m_aCurrentRow != m_pCache->getEnd() && !m_aCurrentRow.isNull() && m_aCurrentRow->isValid()) ? (*(*m_aCurrentRow))[m_nLastColumnIndex].isNull() : sal_True; ^ cc-1324 CC: ERROR File = /build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/dbaccess/source/core/api/RowSetBase.cxx, Line = 270 More than one operator "!=" matches the specified operands. Built-in operator "pointer != pointer" has an overloading ambiguity. Function symbol function "dbaccess::ORowSetCacheIterator::operator!=(const std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator &) const" is ambiguous by inheritance. The operand types are: dbaccess::ORowSetCacheIterator != std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator. if ( m_aCurrentRow && m_aCurrentRow != m_pCache->getEnd() && !m_aCurrentRow.isNull() && m_aCurrentRow->isValid() ) ^ cc-1324 CC: ERROR File = /build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/dbaccess/source/core/api/RowSetBase.cxx, Line = 360 More than one operator "!=" matches the specified operands. Built-in operator "pointer != pointer" has an overloading ambiguity. Function symbol function "dbaccess::ORowSetCacheIterator::operator!=(const std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator &) const" is ambiguous by inheritance. The operand types are: dbaccess::ORowSetCacheIterator != std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator. if(m_aCurrentRow && m_aCurrentRow != m_pCache->getEnd()) ^ cc-1324 CC: ERROR File = /build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/dbaccess/source/core/api/RowSetBase.cxx, Line = 1050 More than one operator "!=" matches the specified operands. Built-in operator "pointer != pointer" has an overloading ambiguity. Function symbol function "dbaccess::ORowSetCacheIterator::operator!=(const std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator &) const" is ambiguous by inheritance. The operand types are: dbaccess::ORowSetCacheIterator != std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator. if(!(m_bBeforeFirst || m_bAfterLast) && !m_aCurrentRow.isNull() && m_aCurrentRow != m_pCache->getEnd()) ^ 4 errors detected in the compilation of "/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/dbaccess/source/core/api/RowSetBase.cxx". cc-1324 CC: ERROR File = /build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/dbaccess/source/core/api/RowSet.cxx, Line = 2363 More than one operator "==" matches the specified operands. Built-in operator "pointer == pointer" has an overloading ambiguity. Function symbol function "dbaccess::ORowSetCacheIterator::operator==(const std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator &) const" is ambiguous by inheritance. The operand types are: dbaccess::ORowSetCacheIterator == int. if(!m_pCache || columnIndex <= 0 || m_aCurrentRow == NULL || m_aCurrentRow == m_pCache->getEnd() || m_nResultSetConcurrency == ResultSetConcurrency::READ_ONLY) ^ cc-1324 CC: ERROR File = /build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/dbaccess/source/core/api/RowSet.cxx, Line = 2363 More than one operator "==" matches the specified operands. Built-in operator "pointer == pointer" has an overloading ambiguity. Function symbol function "dbaccess::ORowSetCacheIterator::operator==(const std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator &) const" is ambiguous by inheritance. The operand types are: dbaccess::ORowSetCacheIterator == std::vector<dbaccess::ORowSetRow, std::allocator<dbaccess::ORowSetRow>>::iterator. if(!m_pCache || columnIndex <= 0 || m_aCurrentRow == NULL || m_aCurrentRow == m_pCache->getEnd() || m_nResultSetConcurrency == ResultSetConcurrency::READ_ONLY) ^ 2 errors detected in the compilation of "/build1/nickb/openoffice/workarea/11rc/oo_1.1rc_src/dbaccess/source/core/api/RowSet.cxx". ---* TG_SLO.MK *---
set target milestone to 1.1.1
There appears to be a compiler bug wrt overload resolution. Does it help to change the return type of ORowSetCache::getEnd() to 'const ORowSetMatrix::iterator' (i.e. add top-level 'const') ? Or to add a cast to that type in the comparison (right side) ?ought to BTW: If that helps, you'll probably still have to change the != NULL error to .isNull() .... Just an idea. HTH
It is indeed a compiler bug! Added non-const operator's worked around this! Index: RowSetCacheIterator.hxx =================================================================== RCS file: /cvs/dba/dbaccess/source/core/api/RowSetCacheIterator.hxx,v retrieving revision 1.5 diff -u -r1.5 RowSetCacheIterator.hxx --- RowSetCacheIterator.hxx 13 Nov 2002 06:56:59 -0000 1.5 +++ RowSetCacheIterator.hxx 19 Sep 2003 01:11:55 -0000 @@ -107,7 +107,19 @@ bool operator <=(const ORowSetMatrix::iterator& _rRH) const; bool operator !=(const ORowSetMatrix::iterator& _rRH) const; + inline bool operator !=(ORowSetMatrix::iterator& _rRH) const { + return m_aIter->second.aIterator != _rRH; + } bool operator ==(const ORowSetMatrix::iterator& _rRH) const; + inline bool operator ==(ORowSetMatrix::iterator& _rRH) const { + return m_aIter->second.aIterator == _rRH; + } + inline bool operator ==(int _rRH) const { + if(_rRH == 0) + return this->isNull(); + else + abort(); + } void setBookmark(const ::com::sun::star::uno::Any& _rBookmark); ::com::sun::star::uno::Any getBookmark() const { return m_aIter->second.aBookmark; } woo!
reassigned.
per issue 106845 sb removed the partial irix port, so this doesn't make sense in isolation anymore
closing