27 #if !defined(USE_STL_ALLOCATOR) || defined(CPPPARSER)
31 #define pmultiset std::multiset
34 #define phash_set stdext::hash_set
35 #define phash_multiset stdext::hash_multiset
36 #else // HAVE_STL_HASH
37 #define phash_set std::set
38 #define phash_multiset std::multiset
39 #endif // HAVE_STL_HASH
41 #else // USE_STL_ALLOCATOR
48 template<
class Key,
class Compare = std::less<Key> >
49 class pset :
public std::set<Key, Compare, pallocator_single<Key> > {
52 typedef std::set<Key, Compare, allocator> base_class;
54 pset(
const Compare &comp,
TypeHandle type_handle = pset_type_handle) : base_class(comp, type_handle) { }
57 std::pair<typename base_class::iterator, bool>
58 insert(
const typename base_class::value_type &x) {
59 TAU_PROFILE(
"pset::insert(const value_type &)",
" ", TAU_USER);
60 return base_class::insert(x);
63 typename base_class::iterator
64 insert(
typename base_class::iterator position,
65 const typename base_class::value_type &x) {
66 TAU_PROFILE(
"pset::insert(iterator, const value_type &)",
" ", TAU_USER);
67 return base_class::insert(position, x);
71 erase(
typename base_class::iterator position) {
72 TAU_PROFILE(
"pset::erase(iterator)",
" ", TAU_USER);
73 base_class::erase(position);
76 typename base_class::size_type
77 erase(
const typename base_class::key_type &x) {
78 TAU_PROFILE(
"pset::erase(const key_type &)",
" ", TAU_USER);
79 return base_class::erase(x);
84 TAU_PROFILE(
"pset::clear()",
" ", TAU_USER);
88 typename base_class::iterator
89 find(
const typename base_class::key_type &x) {
90 TAU_PROFILE(
"pset::find(x)",
" ", TAU_USER);
91 return base_class::find(x);
94 typename base_class::const_iterator
95 find(
const typename base_class::key_type &x)
const {
96 TAU_PROFILE(
"pset::find(x)",
" ", TAU_USER);
97 return base_class::find(x);
107 template<
class Key,
class Compare = std::less<Key> >
108 class pmultiset :
public std::multiset<Key, Compare, pallocator_single<Key> > {
112 pmultiset(
const Compare &comp,
TypeHandle type_handle = pset_type_handle) : std::multiset<Key, Compare, allocator>(comp, type_handle) { }
121 template<
class Key,
class Compare = method_hash<Key, std::less<Key> > >
122 class phash_set :
public stdext::hash_set<Key, Compare, pallocator_array<Key> > {
125 phash_set(
const Compare &comp) : stdext::hash_set<Key, Compare,
pallocator_array<Key> >(comp) { }
133 template<
class Key,
class Compare = method_hash<Key, std::less<Key> > >
134 class phash_multiset :
public stdext::hash_multiset<Key, Compare, pallocator_array<Key> > {
136 phash_multiset() : stdext::hash_multiset<Key, Compare,
pallocator_array<Key> >() { }
137 phash_multiset(
const Compare &comp) : stdext::hash_multiset<Key, Compare,
pallocator_array<Key> >(comp) { }
140 #else // HAVE_STL_HASH
141 #define phash_set pset
142 #define phash_multiset pmultiset
143 #endif // HAVE_STL_HASH
145 #endif // USE_STL_ALLOCATOR