provides an interface to a contiguous sequence of values without exposing the interface of the underlying collection and without copying or moving its data.
More...
#include <contiguous_view.h>
|
using | size_type = size_t |
|
using | value_type = value_type_param |
|
|
template<class Pointer> |
constexpr | contiguous_view (Pointer *pBegin, const size_type aSize) |
|
template<class Iterator> |
constexpr | contiguous_view (Iterator iBegin, const size_type aSize) |
|
template<class Collection> |
constexpr | contiguous_view (Collection &aCollection) |
|
template<class Pointer> |
| contiguous_view (Pointer *pBegin, Pointer *pEnd) |
|
template<class Iterator> |
| contiguous_view (Iterator aBegin, Iterator aEnd) |
| construct from a pair of iterators.
|
|
constexpr | contiguous_view ()=default |
| constructs an empty view
|
|
constexpr | contiguous_view (const contiguous_view &)=default |
| support copy semantics
|
|
constexpr contiguous_view & | operator= (const contiguous_view &rhv)=default |
| support copy semantics
|
|
constexpr | contiguous_view (contiguous_view &&)=default |
| support move semantics
|
|
constexpr contiguous_view & | operator= (contiguous_view &&rhv)=default |
| support move semantics
|
|
constexpr value_type & | operator[] (const size_type index) |
| access an element by index
|
|
constexpr const value_type & | operator[] (const size_type index) const |
| access an element by index, constant
|
|
constexpr value_type_param * | begin () |
| pointer to the beginning of the data
|
|
constexpr value_type_param * | begin () const |
| pointer to the beginning of the data, constant
|
|
constexpr value_type_param * | end () |
| pointer to the element following the last
|
|
constexpr value_type_param * | end () const |
| pointer to the element following the last, constant
|
|
constexpr size_t | size () const |
| number of elements accessible through the view
|
|
constexpr bool | empty () const |
| whether or not size is 0
|
|
template<class value_type_param>
class jfc::contiguous_view< value_type_param >
provides an interface to a contiguous sequence of values without exposing the interface of the underlying collection and without copying or moving its data.
- a view does not own the data it points to.
- a non-constant view allows the user to read and modify values so long as value_type_param is also a non-constant type.
- a constant view only allows the user to read values, even if value_type_param is a non-constant type.
- to construct a view from a constant collection, value_type_param must be const qualified regardless of whether or not the collection's value type is constant since the view will only have access to the collection's constant interface.
◆ contiguous_view() [1/4]
template<class value_type_param>
template<class Pointer>
jfc::contiguous_view< value_type_param >::contiguous_view |
( |
Pointer * | pBegin, |
|
|
const size_type | aSize ) |
|
inlineconstexpr |
construct from a pointer to the head of a sequence and the number of values in the sequence
◆ contiguous_view() [2/4]
template<class value_type_param>
template<class Iterator>
jfc::contiguous_view< value_type_param >::contiguous_view |
( |
Iterator | iBegin, |
|
|
const size_type | aSize ) |
|
inlineconstexpr |
construct from an iterator to the beginning of a sequence and the number of values in the sequence
◆ contiguous_view() [3/4]
template<class value_type_param>
template<class Collection>
construct from a STL contiguous collection (array, vector, string) view will encompass the full sequence owned by the collection at the time the view was constructed
◆ contiguous_view() [4/4]
template<class value_type_param>
template<class Pointer>
construct from a pair of pointers.
- both pointers must point somewhere in the same sequence of data
- pEnd must come after pBegin in the sequence. pEnd defines the end of the
- sequence to be viewed, pEnd points to one element after the last
The documentation for this class was generated from the following file:
- /home/deck/Workspace/gdk-test_game/thirdparty/gdk-graphics/include/jfc/contiguous_view.h