unorderedset.h
00001 #ifndef VVLIB_UTIL_UNORDEREDSET_H
00002 #define VVLIB_UTIL_UNORDEREDSET_H
00003
00004 #include <config.h>
00005
00006 #ifdef USE_HASH
00007 # ifdef __GNUC__
00008 # include <util/features.h>
00009 # ifdef __GXX_EXPERIMENTAL_CXX0X__
00010 # include <unordered_set>
00011 # elif __GNUC_PREREQ(4,0)
00012 # include <tr1/unordered_set>
00013 # ifndef CXX_NEEDS_TR1
00014 # define CXX_NEEDS_TR1
00015 # endif
00016 namespace std
00017 {
00018 using std::tr1::unordered_set;
00019 using std::tr1::unordered_multiset;
00020 using std::tr1::hash;
00021 }
00022 # else
00023 # error "GCC do not have unordered_set before the version 4.0"
00024 # endif
00025 # elif defined(_MSC_VER)
00026 # include <unordered_set>
00027 # ifndef CXX_NEEDS_TR1
00028 # define CXX_NEEDS_TR1
00029 # endif
00030 namespace std
00031 {
00032 using std::tr1::unordered_set;
00033 using std::tr1::unordered_multiset;
00034 using std::tr1::hash;
00035 }
00036 # else
00037 # error "unordered_set is not identified for your compiler"
00038 # endif
00039 #else
00040 # include <set>
00041 # define unordered_set set
00042 # define unordered_multiset multiset
00043 #endif
00044
00045 #endif // VVLIB_UTIL_UNORDEREDSET_H
00046