Quote:Original post by 5MinuteGaming
and have been unsuccessfull in getting it to compile because of missing headers <hash_set> specifically and then <ext/hashtable> when I am able to get to the <hash_set> library header then there are a ton of errors
The problem is that the hash_set class is not part of the C++ standard library. When the standard committee decided what should be included, the proposal for hash tables came in too late. It therefore was not included in the standard. Vendors did include hash table implementations of their own and as you have noticed, the Dinkumware implementation (included in VC6) differs from the SGI implementation (included in GCC). One of the main differences in interface is how the hash function is specified.
If you really want to use that hash_set class, you'll probably have to write a wrapper yourself to provide a unified interface and either use conditional compilation or your build process (preferably) to select one implementation or another.
Quote:So in short is there a version of the extended STL or STL port that will work with VC6. I noticed in the install for STLport which I downloaded it mentioned something about setting it up for your compiler.
STLport should work with VC6.
Quote:I'm still a little lost as to why in God's name you would have to compile a standard library just to use the library unless they mean create the precompiled libraries using your compiler and in that case hmmmm their really lazy and wasting my time.
The only part of STLport you need to compile is the IOStream library (you know, std::cin, std::cout ...) and even that is optional: if you don't it'll just use the IOStream library that ships with your C++ platform (the reason why you can compile it is because you generally only care about the char and wchar_t specializations of the class templates). The rest of the library is implemented as header files (it's all template code so there isn't much choice). As for them being lazy, do you really think they should provide a binary library build for each and every combination of compilers, architectures, etc? I think not. The Boost C++ library is in precisely the same situation, for all that they do provide you with makefiles supporting a number of compilers.
"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it." — Brian W. Kernighan