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
37 #define phash_set std::set
38 #define phash_multiset std::multiset
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) { }
141 #define phash_set pset
142 #define phash_multiset pmultiset
TypeHandle is the identifier used to differentiate C++ class types.
This is our own Panda specialization on the default STL allocator.
This is our own Panda specialization on the default STL multiset.
This is our own Panda specialization on the default STL set.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.