mirror of
https://github.com/KingDuckZ/dindexer.git
synced 2025-02-17 11:45:50 +00:00
Prevent values being stolen accidentally and provide proper overloads.
This commit is contained in:
parent
f58d7d84eb
commit
12c062b939
2 changed files with 19 additions and 8 deletions
|
@ -78,8 +78,9 @@ namespace dinhelp {
|
|||
iterator erase ( const iterator& parDele );
|
||||
iterator erase ( const iterator& parFrom, const iterator& parToExcl );
|
||||
void clear ( void );
|
||||
mov_reference operator[] ( size_type parIndex );
|
||||
const_reference operator[] ( size_type parIndex ) const;
|
||||
reference operator[] ( size_type parIndex ) &;
|
||||
mov_reference operator[] ( size_type parIndex ) &&;
|
||||
const_reference operator[] ( size_type parIndex ) const &;
|
||||
MaxSizedArray& operator= ( const MaxSizedArray& parOther );
|
||||
bool operator== ( const MaxSizedArray& parOther ) const;
|
||||
bool operator!= ( const MaxSizedArray& parOther ) const;
|
||||
|
@ -95,10 +96,12 @@ namespace dinhelp {
|
|||
const_reverse_iterator rbegin ( void ) const;
|
||||
reverse_iterator rend ( void );
|
||||
const_reverse_iterator rend ( void ) const;
|
||||
reference front ( void ) { return (*this)[0]; }
|
||||
reference back ( void ) { return (*this)[size() - 1]; }
|
||||
const_reference front ( void ) const { return (*this)[0]; }
|
||||
const_reference back ( void ) const { return (*this)[size() - 1]; }
|
||||
reference front ( void ) & { return (*this)[0]; }
|
||||
reference back ( void ) & { return (*this)[size() - 1]; }
|
||||
mov_reference front ( void ) && { return (*this)[0]; }
|
||||
mov_reference back ( void ) && { return (*this)[size() - 1]; }
|
||||
const_reference front ( void ) const & { return (*this)[0]; }
|
||||
const_reference back ( void ) const & { return (*this)[size() - 1]; }
|
||||
|
||||
private:
|
||||
pointer GetPointer_NoAssert ( void ) { return m_localMem; }
|
||||
|
|
|
@ -104,7 +104,15 @@ namespace dinhelp {
|
|||
///-------------------------------------------------------------------------
|
||||
///-------------------------------------------------------------------------
|
||||
template <typename T, size_t S, typename A>
|
||||
typename MaxSizedArray<T, S, A>::mov_reference MaxSizedArray<T, S, A>::operator[] (size_type parIndex) {
|
||||
typename MaxSizedArray<T, S, A>::reference MaxSizedArray<T, S, A>::operator[] (size_type parIndex) & {
|
||||
assert(parIndex < size());
|
||||
return m_localMem[parIndex];
|
||||
}
|
||||
|
||||
///-------------------------------------------------------------------------
|
||||
///-------------------------------------------------------------------------
|
||||
template <typename T, size_t S, typename A>
|
||||
typename MaxSizedArray<T, S, A>::mov_reference MaxSizedArray<T, S, A>::operator[] (size_type parIndex) && {
|
||||
assert(parIndex < size());
|
||||
return std::move(m_localMem[parIndex]);
|
||||
}
|
||||
|
@ -112,7 +120,7 @@ namespace dinhelp {
|
|||
///-------------------------------------------------------------------------
|
||||
///-------------------------------------------------------------------------
|
||||
template <typename T, size_t S, typename A>
|
||||
typename MaxSizedArray<T, S, A>::const_reference MaxSizedArray<T, S, A>::operator[] (size_type parIndex) const {
|
||||
typename MaxSizedArray<T, S, A>::const_reference MaxSizedArray<T, S, A>::operator[] (size_type parIndex) const & {
|
||||
assert(parIndex < size());
|
||||
return m_localMem[parIndex];
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue