23 #ifdef USE_STD_NAMESPACE 24 #if (__cplusplus >= 201103L) || defined(_MSC_VER) // Visual Studio 25 #include <unordered_map> 26 #include <unordered_set> 27 #define hash_map std::unordered_map 28 #if (_MSC_VER >= 1500 && _MSC_VER < 1600) // Visual Studio 2008 29 using namespace std::tr1;
34 #define SmartPtr std::unique_ptr 35 #define HAVE_UNIQUE_PTR 37 #elif (defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ > 0)) || \ 38 __GNUC__ >= 4)) // gcc 40 #include <ext/hash_map> 41 #include <ext/hash_set> 42 using __gnu_cxx::hash_map;
43 using __gnu_cxx::hash_set;
44 #define unordered_map hash_map 45 #define unordered_set hash_set 50 #else // USE_STD_NAMESPACE 53 #define unordered_map hash_map 54 #define unordered_set hash_set 55 #endif // USE_STD_NAMESPACE 57 #ifndef HAVE_UNIQUE_PTR 71 if (ptr_ !=
NULL)
delete ptr_;
83 #endif // HAVE_UNIQUE_PTR
bool operator==(const T *ptr) const