1 
2 // vim:sw=2:ai
3 
4 /*
5  * Copyright (C) 2010-2011 DeNA Co.,Ltd.. All rights reserved.
6  * Copyright (C) 2011 Kentoku SHIBA
7  * See COPYRIGHT.txt for details.
8  */
9 
10 #ifndef DENA_AUTO_PTRCONTAINER_HPP
11 #define DENA_AUTO_PTRCONTAINER_HPP
12 
13 namespace dena {
14 
15 /*
16 template <typename Tcnt>
17 struct auto_ptrcontainer {
18   typedef Tcnt container_type;
19   typedef typename container_type::value_type value_type;
20   typedef typename container_type::pointer pointer;
21   typedef typename container_type::reference reference;
22   typedef typename container_type::const_reference const_reference;
23   typedef typename container_type::size_type size_type;
24   typedef typename container_type::difference_type difference_type;
25   typedef typename container_type::iterator iterator;
26   typedef typename container_type::const_iterator const_iterator;
27   typedef typename container_type::reverse_iterator reverse_iterator;
28   typedef typename container_type::const_reverse_iterator
29     const_reverse_iterator;
30   iterator begin() { return cnt.begin(); }
31   const_iterator begin() const { return cnt.begin(); }
32   iterator end() { return cnt.end(); }
33   const_iterator end() const { return cnt.end(); }
34   reverse_iterator rbegin() { return cnt.rbegin(); }
35   reverse_iterator rend() { return cnt.rend(); }
36   const_reverse_iterator rbegin() const { return cnt.rbegin(); }
37   const_reverse_iterator rend() const { return cnt.rend(); }
38   size_type size() const { return cnt.size(); }
39   size_type max_size() const { return cnt.max_size(); }
40   bool empty() const { return cnt.empty(); }
41   reference front() { return cnt.front(); }
42   const_reference front() const { cnt.front(); }
43   reference back() { return cnt.back(); }
44   const_reference back() const { cnt.back(); }
45   void swap(auto_ptrcontainer& x) { cnt.swap(x.cnt); }
46   ~auto_ptrcontainer() {
47     for (iterator i = begin(); i != end(); ++i) {
48       delete *i;
49     }
50   }
51   template <typename Tap> void push_back_ptr(Tap& ap) {
52     cnt.push_back(ap.get());
53     ap.release();
54   }
55   void erase_ptr(iterator i) {
56     delete *i;
57     cnt.erase(i);
58   }
59   reference operator [](size_type n) { return cnt[n]; }
60   const_reference operator [](size_type n) const { return cnt[n]; }
61   void clear() { cnt.clear(); }
62  private:
63   Tcnt cnt;
64 };
65 */
66 
67 };
68 
69 #endif
70 
71