Go to the documentation of this file.
55 posList_(const_cast<
UList<
T>&>(posList)),
56 negList_(const_cast<
UList<
T>&>(negList)),
69 posList_(const_cast<
UList<
T>&>(posList)),
70 negList_(const_cast<
UList<
T>&>(negList)),
71 addressing_(std::move(addr))
80 return addressing_.size();
87 return addressing_.empty();
129 addressing_.transfer(addr);
142 result[i] = operator[](i);
152 const label index = addressing_[i];
156 return posList_[index];
160 return negList_[-index-1];
168 const label index = addressing_[i];
172 return posList_[index];
176 return negList_[-index-1];
184 if (addressing_.size() != ae.size())
187 <<
"Addressing and list of addressed elements "
188 "have different sizes: "
189 << addressing_.size() <<
" " << ae.size()
195 operator[](i) = ae[i];
bool empty() const noexcept
BiIndirectList(const UList< T > &posList, const UList< T > &negList, const labelUList &addr)
static label posIndex(const label i)
const UList< T > & negList() const noexcept
static label negIndex(const label i)
void operator=(const UList< T > &ae)
T & operator[](const label i)
List< T > operator()() const
const labelList & addressing() const noexcept
label size() const noexcept
errorManip< error > abort(error &err)
void resetAddressing(const labelUList &addr)
#define FatalErrorInFunction
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
const UList< T > & posList() const noexcept