| 126 | template<typename Type, |
| 127 | template<typename> typename BaseDeleter = std::default_delete> |
| 128 | struct Ptr |
| 129 | : std::unique_ptr<Type, Deleter<Type, BaseDeleter>> |
| 130 | { |
| 131 | using |
| 132 | std::unique_ptr<Type, Deleter<Type, BaseDeleter>>::unique_ptr; |
| 133 | |
| 134 | //! Enables subscripting. Does not check for null! |
| 135 | auto &operator[](size_t ii) const |
| 136 | { |
| 137 | return *(begin(*this) + ii); |
| 138 | } |
| 139 | }; |
| 140 | |
| 141 | //! Find out how many elements were allocated with a Ptr |
| 142 | template<typename Type, template<typename> typename BaseDeleter> |