Closed GoogleCodeExporter closed 9 years ago
It looks like the issue here is with the definition of reverse_iterator. Can
you
find the definition of reverse_iterator in your standard headers for sunos c++
-- I'm
sorry, I don't have a compiler to test on -- and list it here? Here's the
equivalent
for gcc, in /usr/include/c++/4.2/bits/stl_iterator.h:
---
template<typename _Iterator>
class reverse_iterator [...]
---
It looks like reverse_iterator for sunos wants different arguments.
Original comment by csilv...@gmail.com
on 18 Feb 2010 at 11:29
Ah, I found some references to similar problems on the web:
http://forums.sun.com/thread.jspa?threadID=5376208
What happens if you do
./configure CXXFLAGS=-library=stlport4 LDFALGS=-library=stlport4
?
I may be able to detect this automatically.
Original comment by csilv...@gmail.com
on 18 Feb 2010 at 11:31
I hit the same compilation error in trying to build 1.6 on Solaris 10 with a
newer
version of the Sun compiler ("CC: Sun C++ 5.9 SunOS_i386 Patch 124864-05
2008/06/03").
In order to build and run the tests I had to configure as suggested with
-library=stlport4 *and* then update src/google/sparsetable to std:: qualify
references to memset and memcpy, after which the tests build and run fine.
However I'd like to be able to build *without* -library=stlport (ie using the
Sun
'native' Cstd standard library) as we have other external dependencies which
require
this setup - but I'm not sure this is going to be possible given that (for
example)
Boost only seems to build with stlport4...
Looking at the Cstd headers, they are full of #ifdef's so here is the
reverse_iterator declaration which is actually available after pre-processing:
template < class Iterator , class Category , class T ,
class Reference = T & ,
class Pointer = T * ,
class Distance = ptrdiff_t >
class reverse_iterator
: public iterator < Category , T , Distance , Pointer , Reference >
Original comment by matt.stupple@gmail.com
on 4 Mar 2010 at 8:49
I'm happy to look at patches to get sparsehash working under sun cc. I have no
desire to be gcc-specific; I just don't have access to a sun compiler.
} configure as suggested with -library=stlport4
What is the default stl library if you don't specify stlport? Is there a
reference
page on it? How hard would it be to convert sparsehash to using the new
library?
Perhaps it's just a question of defining the hash<> methods differently (like
we
already have to do for MSVC). If so, it should be pretty straightforward.
} update src/google/sparsetable to std:: qualify references to memset and memcpy
OK, this I don't understand at all. sparsetable #includes <string.h>, rather
than
<cstring>. This should put all string routines in the standard namespace. Do
you
know why it's not?
My guess is that something is #including <cstring> after <string.h>, and
<cstring>
not only defines stuff in std, it undefines stuff in the standard namespace.
Can you
maybe look into this a bit more? Or alternately, remove the std::
qualifications and
run 'make -k', and append the output here?
Original comment by csilv...@gmail.com
on 4 Mar 2010 at 4:07
Sorry for going quiet on this - I've got a stack of 'high priority' things on my
plate at the moment. Will try to revisit this issue when things calm down...
Original comment by matt.stupple@gmail.com
on 3 Apr 2010 at 11:34
I'm hoping to make a new release in the next day or two, so this may have to
slip to the release after that, unless it turns out there's an easy fix for the
problems you've been seeing.
Original comment by csilv...@gmail.com
on 29 Jul 2010 at 5:31
It's been over a year now, so I'm going to close this WillNotFix. Feel free to
reopen it (with patches!).
Original comment by csilv...@gmail.com
on 26 Aug 2011 at 12:17
Original issue reported on code.google.com by
ascheti...@gmail.com
on 15 Feb 2010 at 4:08