libzypp  13.10.6
Tr1hash.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef ZYPP_BASE_TR1HASH_H
13 #define ZYPP_BASE_TR1HASH_H
14 
15 #include <iosfwd>
16 #include <tr1/unordered_set>
17 #include <tr1/unordered_map>
18 
26 #define ZYPP_DEFINE_ID_HASHABLE(C) \
27 namespace std { namespace tr1 { \
28  template<class _Tp> struct hash; \
29  template<> struct hash<C> \
30  { \
31  size_t operator()( const C & __s ) const \
32  { return __s.id(); } \
33  }; \
34 }}
35 
37 namespace std
38 {
39  namespace tr1
41  {
42 
44  template<class _D>
45  inline unordered_set<_D> * rwcowClone( const std::tr1::unordered_set<_D> * rhs )
46  { return new std::tr1::unordered_set<_D>( *rhs ); }
47 
49  template<class _K, class _V>
50  inline std::tr1::unordered_map<_K,_V> * rwcowClone( const std::tr1::unordered_map<_K,_V> * rhs )
51  { return new std::tr1::unordered_map<_K,_V>( *rhs ); }
52 
54  } // namespace tr1
57 } // namespace std
59 #endif // ZYPP_BASE_TR1HASH_H
unordered_set< _D > * rwcowClone(const std::tr1::unordered_set< _D > *rhs)
clone function for RW_pointer
Definition: Tr1hash.h:45