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
This is our own Panda specialization on the default STL allocator.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is our own Panda specialization on the default STL multiset.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
This is our own Panda specialization on the default STL set.
TypeHandle is the identifier used to differentiate C++ class types.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.