vector<bbm::reference> with casting on the inspectors and iterators More...
#include <vector_util.h>
Inherits vector< bbm::reference< T > >.
Public Types | |
| using | value_type = typename base_type::value_type |
| using | allocator_type = typename base_type::allocator_type |
| using | size_type = typename base_type::size_type |
| using | difference_type = typename base_type::difference_type |
| using | reference = T |
| using | const_reference = bbm::add_const_t< T > |
| using | pointer = typename base_type::pointer |
| using | const_pointer = typename base_type::const_pointer |
| using | iterator = cast_itr< T, typename base_type::iterator > |
| using | const_iterator = cast_itr< bbm::add_const_t< T >, typename base_type::const_iterator > |
| using | reverse_iterator = cast_itr< T, typename base_type::reverse_iterator > |
| using | const_reverse_iterator = cast_itr< bbm::add_const_t< T >, typename base_type::const_reverse_iterator > |
Public Member Functions | |
| template<typename U > requires concepts::assignable_to<U, bbm::reference<T>> | |
| bbm::vector< T > & | operator= (const bbm::vector< U > &src) |
| Casting Assignemnt. | |
| template<typename R > | |
| void | push_back (R &&a) |
| push_back reference encapsulation | |
Auto-casting dereference methods | |
| reference | at (size_type idx) |
| const_reference | at (size_type idx) const |
| reference | operator[] (size_type idx) |
| const_reference | operator[] (size_type idx) const |
| reference | front (void) |
| const_reference | front (void) const |
| reference | back (void) |
| const_reference | back (void) const |
Auto-casting iterators | |
| iterator | begin (void) |
| const_iterator | begin (void) const |
| iterator | rbegin (void) |
| const_iterator | rbegin (void) const |
| const_iterator | cbegin (void) const |
| iterator | end (void) |
| const_iterator | end (void) const |
| iterator | rend (void) |
| const_iterator | rend (void) const |
| const_iterator | cend (void) const |
Override insert to use emplace | |
| constexpr iterator | insert (const_iterator pos, value_type &&val) |
| constexpr iterator | insert (const_iterator pos, size_t count, value_type &&val) |
| template<typename Itr > | |
| constexpr iterator | insert (const_iterator pos, Itr inputBegin, Itr inputEnd) |
Private Types | |
| using | base_type = std::vector< bbm::reference< T > > |
vector<bbm::reference> with casting on the inspectors and iterators
The problem with vector<bbm::reference> is that the result of any operation still needs to be manually cast when calling methods on the result. This wrapper class will automatically do the casting.
If not a reference, bbm::vector will be equivalent to a std::vector
| using allocator_type = typename base_type::allocator_type |
|
private |
| using const_iterator = cast_itr<bbm::add_const_t<T>, typename base_type::const_iterator> |
| using const_pointer = typename base_type::const_pointer |
| using const_reference = bbm::add_const_t<T> |
| using const_reverse_iterator = cast_itr<bbm::add_const_t<T>, typename base_type::const_reverse_iterator> |
| using difference_type = typename base_type::difference_type |
| using pointer = typename base_type::pointer |
| using reference = T |
| using reverse_iterator = cast_itr<T, typename base_type::reverse_iterator> |
| using size_type = typename base_type::size_type |
| using value_type = typename base_type::value_type |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineconstexpr |
|
inlineconstexpr |
|
inlineconstexpr |
|
inline |
Casting Assignemnt.
|
inline |
|
inline |
push_back reference encapsulation
|
inline |
|
inline |
|
inline |
|
inline |