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