[ http://issues.apache.org/jira/browse/STDCXX-89?page=comments#action_12362534 ]
Duraid Madina commented on STDCXX-89: ------------------------------------- Martin, many thanks for this - I think your simplification is a good idea. I will keep my eyes open for your commit and let you know how things go. > compilation error on std::lower_bound<Iterator, T>() with > Iterator::value_type != T > ----------------------------------------------------------------------------------- > > Key: STDCXX-89 > URL: http://issues.apache.org/jira/browse/STDCXX-89 > Project: STDCXX > Type: Bug > Components: 25. Algorithms > Versions: 4.1.3 > Environment: all > Reporter: Duraid Madina > Assignee: Martin Sebor > Attachments: stdcxx-comparison.patch > > On both the released ("incubating") and current subversion trunk versions of > stdcxx, I trip across the following - I think it is your bug: > "/home/duraid/stdcxx/include/algorithm.cc", line 1180: error #2304: no > instance of function "__rw::__rw_lt<_TypeT>::operator() [with _Type > T=std::iterator_traits<__rw::__rw_debug_iter<std::vector<llvm::GlobalValue *, > std::allocator<llvm::GlobalValue *>>, std::vector<llvm::Glob > alValue *, std::allocator<llvm::GlobalValue *>>::pointer, > std::vector<llvm::GlobalValue *, std::allocator<llvm::GlobalValue > *>>::pointer>> > ::value_type]" matches the argument list > argument types are: > (std::iterator_traits<__rw::__rw_debug_iter<std::vector<llvm::GlobalValue *, > std::allocator<llvm::GlobalVa > lue *>>, std::vector<llvm::GlobalValue *, std::allocator<llvm::GlobalValue > *>>::pointer, std::vector<llvm::GlobalValue *, std::allocator<l > lvm::GlobalValue *>>::pointer>::iterator_type>::value_type, const > llvm::GlobalValue *const) > object type is: > __rw::__rw_lt<std::iterator_traits<__rw::__rw_debug_iter<std::vector<llvm::GlobalValue > *, std::allocator<llvm: > :GlobalValue *>>, std::vector<llvm::GlobalValue *, > std::allocator<llvm::GlobalValue *>>::pointer, std::vector<llvm::GlobalValue > *, std::al > locator<llvm::GlobalValue *>>::pointer>>::value_type> > if (__comp (*__middle, __val)) { > ^ > detected during instantiation of "_RandomAccessIter > std::__lower_bound(_RandomAccessIter, _RandomAccessIter, const _TypeT &, _Co > mpare, _Dist *, std::random_access_iterator_tag) [with > _RandomAccessIter=__rw::__rw_debug_iter<std::vector<llvm::GlobalValue *, > std::alloc > ator<llvm::GlobalValue *>>, std::vector<llvm::GlobalValue *, > std::allocator<llvm::GlobalValue *>>::pointer, std::vector<llvm::GlobalValue > *, std::allocator<llvm::GlobalValue *>>::pointer>, _TypeT=const > llvm::GlobalValue *, _Compare=__rw::__rw_lt<std::iterator_traits<__rw::__r > w_debug_iter<std::vector<llvm::GlobalValue *, > std::allocator<llvm::GlobalValue *>>, std::vector<llvm::GlobalValue *, > std::allocator<llvm:: > GlobalValue *>>::pointer, std::vector<llvm::GlobalValue *, > std::allocator<llvm::GlobalValue *>>::pointer>>::value_type>, > _Dist=std::iterat > or_traits<__rw::__rw_debug_iter<std::vector<llvm::GlobalValue *, > std::allocator<llvm::GlobalValue *>>, std::vector<llvm::GlobalValue *, st > d::allocator<llvm::GlobalValue *>>::pointer, std::vector<llvm::GlobalValue *, > std::allocator<llvm::GlobalValue *>>::pointer>>::difference_ > type]" > Please see http://kinoko.c.u-tokyo.ac.jp/~duraid/stdcxxissues if you want to > try and reproduce this. There, you will find the following files: > DataStructure.cpp: the code I'm trying to build (it is a part of LLVM, > http://www.llvm.org) > Note: the problem is the const keyword on line 694 (const GlobalValue *V = > Src[0]; ) - removing that keyword allows the file to be compiled, but I think > the const keyword should be legal there. > algorithmcc_bug.i: (preprocessed source: you should be able to compile this > with aCC as follows: > aCC -D__STDC_LIMIT_MACROS -AA -DNDEBUG -D_RWSTDDEBUG -D_RWSTD_USE_CONFIG > +d +w +W392 +W655 +W684 +W818 +W819 +W849 +W2193 +W2236 +W2261 +W2401 > +W2487 +O2 -c algorithmcc_bug.i > compile_log: what I see when trying to compile DataStructure.cpp with the > const keyword present (grep for the error #2304) > If you would like an account on the machine where I see this, just let me > know! -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
