57template<typename PS_value_t, typename PS_id_t>
64 template<typename PS_value_t, typename PS_id_t>
74 typename std::conditional<std::is_const<value_t>::value,
75 const Storage<value_no_cv_t, id_t>,
76 Storage<value_no_cv_t, id_t>
106 typename std::conditional<std::is_const<value_t>::value,
107 typename Storage<value_no_cv_t, id_t>::const_pointer,
108 typename Storage<value_no_cv_t, id_t>::pointer
117 typename std::conditional<std::is_const<value_t>::value,
118 typename Storage<value_no_cv_t, id_t>::const_reference,
119 typename Storage<value_no_cv_t, id_t>::reference
132 template<typename other_value_t, typename std::enable_if<std::is_const<value_t>::value && !std::is_const<other_value_t>::value && std::is_same<other_value_t, typename std::remove_cv<value_t>::type>::value, int>::type = 0>
136 void
swap(PiercedStorageIterator& other) noexcept;
146 __PSI_REFERENCE__
getValue(std::size_t k = 0) const;
155 __PSI_REFERENCE__ operator*() const;
156 __PSI_POINTER__ operator->() const;
158 template<typename other_value_t, typename std::enable_if<std::is_const<value_t>::value && !std::is_const<other_value_t>::value && std::is_same<other_value_t, typename std::remove_cv<value_t>::type>::value, int>::type = 0>
159 PiercedStorageIterator & operator=(const PiercedStorageIterator<other_value_t, id_t, value_no_cv_t> &other);
164 bool operator==(const PiercedStorageIterator &rhs) const
181 storage_t *m_storage;