Issue 17868 - IRIX: dbaccess - ore than one operator "!=" matches the specified operands.
Summary: IRIX: dbaccess - ore than one operator "!=" matches the specified operands.
Status: CLOSED WONT_FIX
Alias: None
Product: porting
Classification: Code
Component: code (show other issues)
Version: OOo 1.1 RC
Hardware: SGI IRIX
: P3 Trivial (vote)
Target Milestone: AOO PleaseHelp
Assignee: sander_traveling
QA Contact: issues@porting
URL:
Keywords:
Depends on:
Blocks: 809
  Show dependency tree
 
Reported: 2003-08-05 02:50 UTC by nickb
Modified: 2010-03-29 20:57 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description nickb 2003-08-05 02:50:39 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 *---
Comment 1 Martin Hollmichel 2003-08-07 15:56:24 UTC
set target milestone to 1.1.1
Comment 2 joerg.barfurth 2003-09-18 14:17:15 UTC
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
Comment 3 nickb 2003-09-19 02:12:54 UTC
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!
Comment 4 Martin Hollmichel 2003-10-17 08:21:18 UTC
reassigned.
Comment 5 caolanm 2010-03-29 20:57:34 UTC
per issue 106845 sb removed the partial irix port, so this doesn't make sense in
isolation anymore
Comment 6 caolanm 2010-03-29 20:57:49 UTC
closing