I have stared at this code fragment and I am not seeing the error. This is from a piece of code that used to compile, but I am migragrating the code from the depreciated hash_map to an unordered_map. There is *obviously* something wrong here, but I am just not seeing it.
================Begin test.cc=========================== #include <string.h> #include <iostream> #ifdef __GNUC__ # if __GNUC__ > 3 // GCC > 3 # include <tr1/unordered_map> # define USE_UNORDERED_MAP # else // GCC < 4 # define USE_HASH_MAP # include <ext/hash_map> # endif #else // ... there are other compilers, right? # define USE_HASH_MAP #endif #ifdef USE_HASH_MAP /** @brief Equality structure. * * Used with the hash map used for Print Options * * @author Robert Heller \<heller\@deepsoft.com\> * */ struct eqstr { bool operator()(const char* s1, const char* s2) const { return strcmp(s1, s2) == 0; } }; #endif /** @brief Option hash map, used for Print options. * * @author Robert Heller \<heller\@deepsoft.com\> * */ #ifdef USE_HASH_MAP typedef __gnu_cxx::hash_map<const char*, string, __gnu_cxx::hash<const char*>, eqstr> OptionHashMap; #else typedef std::unordered_map<const char*, string> OptionHashMap; #endif int main(int argc, char *argv[]) { OptionHashMap theMap; std::cout << "GCC Major Version is " << __GNUC__ << std::endl; if (__GNUC__ > 3) { std::cout << "GCC Major Version is greater than 3" << std::endl; } else { std::cout << "GCC Major Version is less than or equal to 3" << std::endl; } #ifdef USE_UNORDERED_MAP std::cout << "Using unordered_map" << std::endl; #endif #ifdef USE_HASH_MAP std::cout << "Using hash_map" << std::endl; #endif } ====================End test.cc============== sauron.deepsoft.com% g++ -Wall test.cc -o test test.cc:44: error: expected initializer before â<â token test.cc: In function âint main(int, char**)â: test.cc:48: error: âOptionHashMapâ was not declared in this scope test.cc:48: error: expected `;' before âtheMapâ sauron.deepsoft.com% g++ -v Using built-in specs. Target: x86_64-redhat-linux Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --disable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=x86_64-redhat-linux Thread model: posix gcc version 4.1.2 20080704 (Red Hat 4.1.2-54) -- Robert Heller -- 978-544-6933 / hel...@deepsoft.com Deepwoods Software -- http://www.deepsoft.com/ () ascii ribbon campaign -- against html e-mail /\ www.asciiribbon.org -- against proprietary attachments
_______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org https://lists.gnu.org/mailman/listinfo/help-gplusplus