Exiv2
Loading...
Searching...
No Matches
Exiv2::Slice< const T * > Struct Template Reference

#include <slice.hpp>

Inheritance diagram for Exiv2::Slice< const T * >:

Public Types

using iterator
using const_iterator
using value_type
Public Types inherited from Exiv2::Internal::MutableSliceBase< storage_type, data_type >
using iterator = typename ConstSliceBase<storage_type, data_type>::iterator
using const_iterator = typename ConstSliceBase<storage_type, data_type>::const_iterator
using value_type = typename ConstSliceBase<storage_type, data_type>::value_type
Public Types inherited from Exiv2::Internal::ConstSliceBase< storage_type, data_type >
using iterator = typename storage_type<data_type>::iterator
using const_iterator = typename storage_type<data_type>::const_iterator
using value_type = typename storage_type<data_type>::value_type
Public Types inherited from Exiv2::Internal::ConstSliceBase< Internal::PtrSliceStorage, const T * >
using iterator
using const_iterator
using value_type

Public Member Functions

 Slice (const T *ptr, size_t begin, size_t end)
Slice< const T * > subSlice (size_t begin, size_t end) const
Public Member Functions inherited from Exiv2::Internal::MutableSliceBase< storage_type, data_type >
value_type & at (size_t index)
const value_type & at (size_t index) const
iterator begin () noexcept
iterator end () noexcept
Public Member Functions inherited from Exiv2::Internal::ConstSliceBase< storage_type, data_type >
 ConstSliceBase (data_type &data, size_t begin, size_t end)
const value_type & at (size_t index) const
const_iterator cbegin () const noexcept
const_iterator cend () const noexcept
template<typename slice_type>
slice_type subSlice (size_t begin, size_t end) const
Public Member Functions inherited from Exiv2::Internal::SliceBase
 SliceBase (size_t begin, size_t end)
size_t size () const noexcept
Public Member Functions inherited from Exiv2::Internal::ConstSliceBase< Internal::PtrSliceStorage, const T * >
 ConstSliceBase (const T *&data, size_t begin, size_t end)
const value_type & at (size_t index) const
const_iterator cbegin () const noexcept
const_iterator cend () const noexcept
slice_type subSlice (size_t begin, size_t end) const

Additional Inherited Members

Protected Types inherited from Exiv2::Internal::MutableSliceBase< storage_type, data_type >
using base_type = ConstSliceBase<storage_type, data_type>
Protected Member Functions inherited from Exiv2::Internal::MutableSliceBase< storage_type, data_type >
ConstSliceBase< storage_type, const data_type > to_const_base () const noexcept
template<typename slice_type>
slice_type subSlice (size_t begin, size_t end)
Protected Member Functions inherited from Exiv2::Internal::SliceBase
void rangeCheck (size_t index) const
Protected Attributes inherited from Exiv2::Internal::ConstSliceBase< storage_type, data_type >
storage_type< data_type > storage_
Protected Attributes inherited from Exiv2::Internal::SliceBase
size_t begin_
size_t end_
Protected Attributes inherited from Exiv2::Internal::ConstSliceBase< Internal::PtrSliceStorage, const T * >
Internal::PtrSliceStorage< const T * > storage_

Detailed Description

template<typename T>
struct Exiv2::Slice< const T * >

Specialization of slices for constant C-arrays.

These have exactly the same interface as the slices for STL-containers, with the crucial exception, that the slice's constructor cannot make a proper bounds check! It can only verify that you didn't accidentally swap begin and end!

Constructor & Destructor Documentation

◆ Slice()

template<typename T>
Exiv2::Slice< const T * >::Slice ( const T * ptr,
size_t begin,
size_t end )
inline

Constructor.

Parameters
[in]ptrC-array of which a slice should be constructed. Must not be a null pointer.
[in]beginIndex of the first element in the slice.
[in]endIndex of the first element that is no longer in the slice.

Please note that the constructor has no way how to verify that begin and end are not out of bounds of the provided array!

References Exiv2::Internal::MutableSliceBase< storage_type, data_type >::begin(), Exiv2::Internal::ConstSliceBase< Internal::PtrSliceStorage, const T * >::ConstSliceBase(), and Exiv2::Internal::MutableSliceBase< storage_type, data_type >::end().


The documentation for this struct was generated from the following file: