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.