55 return NullObjectRef<UList<T>>();
62 return (i == size()-1 ? 0 : i+1);
69 return (i ? i-1 : size()-1);
76 return this->operator[](this->fcIndex(i));
83 return this->operator[](this->fcIndex(i));
90 return this->operator[](this->rcIndex(i));
97 return this->operator[](this->rcIndex(i));
104 if (start < 0 || (start && start >= size_))
108 <<
"start " << start <<
" out of range [0,"
118 if (size < 0 || size > size_)
121 <<
"size " << size <<
" out of range [0,"
142 <<
"size " << len <<
" is negative, out of range [0,"
146 this->checkStart(start);
147 this->checkSize(start + len);
153 this->checkSize(start);
164 <<
"attempt to access element " << i <<
" from zero sized list"
167 else if (i < 0 || i >= size_)
170 <<
"index " << i <<
" out of range [0,"
180 const label len = size();
187 const T& val = (*this)[0];
189 for (label i = 1; i < len; ++i)
191 if (val != (*
this)[i])
204 return this->operator[](0);
211 return this->operator[](0);
218 return this->operator[](this->size()-1);
225 return this->operator[](this->size()-1);
246 return reinterpret_cast<const char*
>(v_);
253 return reinterpret_cast<char*
>(v_);
260 return std::streamsize(size_)*
sizeof(
T);
267 return (this->find(val, pos) >= 0);
288 if (i >= 0 && i < size_)
321 return *
reinterpret_cast<const List<T>*
>(
this);
441 std::swap(size_, list.size_);
442 std::swap(v_, list.v_);
451 const label nBy2 =
n/2;
453 for (label i = 0; i < nBy2; ++i)
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
void checkSize() const
Check that dimensions are positive, non-zero.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
const_reverse_iterator crbegin() const
Return const_reverse_iterator to begin reverse traversing the UList.
T & first()
Return the first element of the list.
iterator begin() noexcept
Return an iterator to begin traversing the UList.
void swap(UList< T > &list)
Swap content with another UList of the same type in constant time.
char * data_bytes() noexcept
Return pointer to the underlying array serving as data storage,.
const_reverse_iterator crend() const
Return const_reverse_iterator to end reverse traversing the UList.
static const UList< T > & null()
Return a UList reference to a nullObject.
const T * const_iterator
Random access iterator for traversing a UList.
void checkIndex(const label i) const
Check index is within valid range [0,size)
T * iterator
Random access iterator for traversing a UList.
bool empty() const noexcept
True if the UList is empty (ie, size() is zero)
std::reverse_iterator< const_iterator > const_reverse_iterator
Reverse iterator (const access)
const T & rcValue(const label i) const
Return reverse circular value (ie, previous value in the list)
iterator end() noexcept
Return an iterator to end traversing the UList.
const_iterator cend() const noexcept
Return const_iterator to end traversing the constant UList.
const T * cdata() const noexcept
Return pointer to the underlying array serving as data storage.
constexpr UList() noexcept
Default construct, zero-sized and nullptr.
reverse_iterator rbegin()
Return reverse_iterator to begin reverse traversing the UList.
const_iterator cbegin() const noexcept
Return const_iterator to begin traversing the constant UList.
const T & fcValue(const label i) const
Return forward circular value (ie, next value in the list)
label rcIndex(const label i) const noexcept
std::reverse_iterator< iterator > reverse_iterator
Reverse iterator (non-const access)
label size() const noexcept
The number of elements in the UList.
T * data() noexcept
Return pointer to the underlying array serving as data storage.
bool uniform() const
True if all entries have identical values, and list is non-empty.
const char * cdata_bytes() const noexcept
Return pointer to the underlying array serving as data storage,.
reverse_iterator rend()
Return reverse_iterator to end reverse traversing the UList.
void size(const label n)
Older name for setAddressableSize.
std::streamsize size_bytes() const noexcept
Number of contiguous bytes for the List data.
void checkRange(const label start, const label len) const
Check that start and length define a valid range.
void setAddressableSize(const label n) noexcept
Set addressed size to be inconsistent with allocated storage.
void shallowCopy(const UList< T > &list)
Copy the pointer and size held by the given UList.
T & operator[](const label i)
Return element of UList.
T & last()
Return the last element of the list.
label fcIndex(const label i) const noexcept
void checkStart(const label start) const
Check start is within valid range [0,size)
#define FatalErrorInFunction
Report an error message using Foam::FatalError.
void reverse(UList< T > &list, const label n)
Reverse the first n elements of the list.
void Swap(DynamicList< T, SizeMinA > &a, DynamicList< T, SizeMinB > &b)
errorManip< error > abort(error &err)
A non-counting (dummy) refCount.