MCPcopy Create free account
hub / github.com/Project-OSRM/osrm-backend / internal_reference

Class internal_reference

include/util/packed_vector.hpp:255–290  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

253 using block_type = WordT;
254
255 class internal_reference
256 {
257 public:
258 internal_reference(PackedVector &container, const InternalIndex internal_index)
259 : container(container), internal_index(internal_index)
260 {
261 }
262
263 internal_reference &operator=(const value_type value)
264 {
265 container.set_value(internal_index, value);
266 return *this;
267 }
268
269 operator T() const { return container.get_value(internal_index); }
270
271 bool operator==(const internal_reference &other) const
272 {
273 return &container == &other.container && internal_index == other.internal_index;
274 }
275
276 // FIXME: This is needed for tests on Boost ranges to correctly compare Alias values.
277 template <typename F, typename U> bool operator!=(const osrm::Alias<F, U> value) const
278 {
279 return container.get_value(internal_index) != value;
280 }
281
282 friend std::ostream &operator<<(std::ostream &os, const internal_reference &rhs)
283 {
284 return os << static_cast<T>(rhs);
285 }
286
287 private:
288 PackedVector &container;
289 const InternalIndex internal_index;
290 };
291
292 template <typename DataT, typename ContainerT, typename ReferenceT = internal_reference>
293 class iterator_impl

Callers

nothing calls this directly

Calls 2

set_valueMethod · 0.80
get_valueMethod · 0.80

Tested by

no test coverage detected