You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by "Martin Sebor (JIRA)" <ji...@apache.org> on 2007/03/28 02:11:33 UTC

[jira] Closed: (STDCXX-120) deque.cc and rw/_tree.cc std::rel_ops unfriendly

     [ https://issues.apache.org/jira/browse/STDCXX-120?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Martin Sebor closed STDCXX-120.
-------------------------------

    Resolution: Fixed

A fix is in place as is a passing test. Should have been closed a long time ago.

> deque.cc and rw/_tree.cc std::rel_ops unfriendly
> ------------------------------------------------
>
>                 Key: STDCXX-120
>                 URL: https://issues.apache.org/jira/browse/STDCXX-120
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 23. Containers
>    Affects Versions: 4.1.3
>         Environment: HP aCC 6.x, optimized
>            Reporter: Martin Sebor
>         Assigned To: Martin Sebor
>             Fix For: 4.2
>
>
> Compiling the following program with HP aCC 6.x with debugging iterators disabled gives the errors below:
> $ cat t.cpp && nice gmake t CPPOPTS=-D_RWSTD_NO_DEBUG_ITER
> #include <deque>
> #include <map>
> #include <utility>
> using namespace std;
> using namespace std::rel_ops;
> template class std::deque<int>;
> template class std::map<int, int>;
> int main () { }
> aCC -c  -D_RWSTDDEBUG   -mt -D_RWSTD_USE_CONFIG -I/build/sebor/aCC-6.0-15S/include -I/build/sebor/dev/stdlib/include -I/build/sebor/dev/stdlib/../rwtest -I/build/sebor/dev/stdlib/../rwtest/include -I/build/sebor/dev/stdlib/tests/include -D_RWSTD_NO_DEBUG_ITER -AA  -g +d  +DD64 +w +W392 +W655 +W684 +W818 +W819 +W849 +W2193 +W2236 +W2261 +W2340 +W2401 +W2487  t.cpp
> "/build/sebor/dev/stdlib/include/deque.cc", line 111: error #2350: more than one operator "!=" matches these operands:
>             function template "std::operator!=(const std::__rw_deque_iter<_TypeT, _DiffT, _Ptr1, _Ref1, _Alloc> &, const std::__rw_deque_iter<_TypeT, _DiffT, _Ptr2, _Ref2, _Alloc> &)"
>             function template "std::rel_ops::operator!=(const _TypeT &, const _TypeT &)"
>             operand types are: std::deque<int, std::allocator<int>>::iterator != std::deque<int, std::allocator<int>>::iterator
>       _RWSTD_ASSERT (__it != end ());
>       ^
>           detected during instantiation of "std::deque<_TypeT, _Allocator>::iterator std::deque<_TypeT, _Allocator>::erase(std::deque<_TypeT, _Allocator>::iterator) [with _TypeT=int, _Allocator=std::allocator<int>]" 
> "/build/sebor/dev/stdlib/include/deque.cc", line 373: error #2350: more than one operator "!=" matches these operands:
>             function template "std::operator!=(const std::__rw_deque_iter<_TypeT, _DiffT, _Ptr1, _Ref1, _Alloc> &, const std::__rw_deque_iter<_TypeT, _DiffT, _Ptr2, _Ref2, _Alloc> &)"
>             function template "std::rel_ops::operator!=(const _TypeT &, const _TypeT &)"
>             operand types are: std::deque<int, std::allocator<int>>::iterator != const std::deque<int, std::allocator<int>>::iterator
>       for (iterator __ix = begin (); __ix != __end; ++__ix, --__n) {
>                                           ^
>           detected during instantiation of "void std::deque<_TypeT, _Allocator>::_C_assign_n(std::deque<_TypeT, _Allocator>::size_type, std::deque<_TypeT, _Allocator>::const_reference) [with _TypeT=int, _Allocator=std::allocator<int>]" 
> "/build/sebor/dev/stdlib/include/deque.cc", line 510: error #2350: more than one operator "!=" matches these operands:
>             function template "std::operator!=(const std::__rw_deque_iter<_TypeT, _DiffT, _Ptr1, _Ref1, _Alloc> &, const std::__rw_deque_iter<_TypeT, _DiffT, _Ptr2, _Ref2, _Alloc> &)"
>             function template "std::rel_ops::operator!=(const _TypeT &, const _TypeT &)"
>             operand types are: std::deque<int, std::allocator<int>>::iterator != const std::deque<int, std::allocator<int>>::iterator
>       for (iterator __ix = __self->begin (); __ix != __end; ++__ix, ++__first) {
>                                                   ^
>           detected during instantiation of "void std::deque<_TypeT, _Allocator>::_C_assign_range(_InputIter, _InputIter, std::input_iterator_tag) [with _TypeT=int, _Allocator=std::allocator<int>, _InputIter=std::__rw_deque_iter<std::deque<int, std::allocator<int>>::value_type, std::deque<int, std::allocator<int>>::difference_type, std::deque<int, std::allocator<int>>::const_pointer, std::deque<int, std::allocator<int>>::const_reference, std::deque<int, std::allocator<int>>::allocator_type>]" 
> "/build/sebor/dev/stdlib/include/rw/_tree.cc", line 815: error #2350: more than one operator "!=" matches these operands:
>             function template "__rw::operator!=(const __rw::__rw_tree_iter<_TypeT, _DiffT, _Ptr1, _Ref1, _Node> &, const __rw::__rw_tree_iter<_TypeT, _DiffT, _Ptr2, _Ref2, _Node> &)"
>             function template "std::rel_ops::operator!=(const _TypeT &, const _TypeT &)"
>             operand types are: __rw::__rb_tree<std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::key_type, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::value_type, __rw::__select1st<std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::value_type, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::key_type>, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::key_compare, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::allocator_type>::iterator != __rw::__rb_tree<std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::key_type, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::value_type, __rw::__select1st<std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::value_type, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::key_type>, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::key_compare, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::allocator_type>::iterator
>           for (__tmp = end (); __first != __last; __tmp = erase (__first++));
>                                        ^
>           detected during instantiation of "__rw::__rb_tree<_Key, _Val, _KeyOf, _Comp, _Alloc>::iterator __rw::__rb_tree<_Key, _Val, _KeyOf, _Comp, _Alloc>::erase(__rw::__rb_tree<_Key, _Val, _KeyOf, _Comp, _Alloc>::iterator, __rw::__rb_tree<_Key, _Val, _KeyOf, _Comp, _Alloc>::iterator) [with _Key=std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::key_type, _Val=std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::value_type, _KeyOf=__rw::__select1st<std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::value_type, std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::key_type>, _Comp=std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::key_compare, _Alloc=std::map<int, int, std::less<int>, std::allocator<std::pair<const int, int>>>::allocator_type]" 
> 4 errors detected in the compilation of "t.cpp".
> gmake: *** [t.o] Error 2

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.