mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
access to underlying list
This commit is contained in:
@ -160,13 +160,15 @@ public:
|
|||||||
//- Number of packed elements
|
//- Number of packed elements
|
||||||
inline label size() const;
|
inline label size() const;
|
||||||
|
|
||||||
|
|
||||||
//- Get value at index I
|
//- Get value at index I
|
||||||
inline unsigned int get(const label i) const;
|
inline unsigned int get(const label i) const;
|
||||||
|
|
||||||
//- Set value at index I. Return true if value changed.
|
//- Set value at index I. Return true if value changed.
|
||||||
inline bool set(const label i, const unsigned int val);
|
inline bool set(const label i, const unsigned int val);
|
||||||
|
|
||||||
|
//- Underlying storage
|
||||||
|
inline List<unsigned int>& storage();
|
||||||
|
|
||||||
|
|
||||||
// Member operators
|
// Member operators
|
||||||
|
|
||||||
@ -179,7 +181,8 @@ public:
|
|||||||
//- Assignment operator. Takes linear time.
|
//- Assignment operator. Takes linear time.
|
||||||
void operator=(const PackedList<nBits>&);
|
void operator=(const PackedList<nBits>&);
|
||||||
|
|
||||||
//- Assignment of all entries to the given value
|
//- Assignment of all entries to the given value. Does set on all
|
||||||
|
// elements.
|
||||||
inline void operator=(const unsigned int val);
|
inline void operator=(const unsigned int val);
|
||||||
|
|
||||||
//- Return as labelList
|
//- Return as labelList
|
||||||
|
|||||||
@ -83,7 +83,7 @@ inline void PackedList<nBits>::checkValue(const unsigned int val) const
|
|||||||
{
|
{
|
||||||
if (val>=(1u << nBits))
|
if (val>=(1u << nBits))
|
||||||
{
|
{
|
||||||
FatalErrorIn("PackedList<T>::set(const unsigned int)")
|
FatalErrorIn("PackedList<T>::checkValue(const unsigned int)")
|
||||||
<< "value " << label(val) << " out of range 0 ... "
|
<< "value " << label(val) << " out of range 0 ... "
|
||||||
<< label((1u << nBits)-1)
|
<< label((1u << nBits)-1)
|
||||||
<< " representable by " << nBits << " bits"
|
<< " representable by " << nBits << " bits"
|
||||||
@ -183,6 +183,13 @@ inline bool PackedList<nBits>::set(const label i, const unsigned int val)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<int nBits>
|
||||||
|
inline List<unsigned int>& PackedList<nBits>::storage()
|
||||||
|
{
|
||||||
|
return static_cast<List<unsigned int>&>(*this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
template<int nBits>
|
template<int nBits>
|
||||||
inline ::Foam::reference PackedList<nBits>::operator[](const label i)
|
inline ::Foam::reference PackedList<nBits>::operator[](const label i)
|
||||||
{
|
{
|
||||||
@ -213,8 +220,13 @@ inline void PackedList<nBits>::operator=(const unsigned int val)
|
|||||||
# ifdef DEBUGList
|
# ifdef DEBUGList
|
||||||
checkValue(val);
|
checkValue(val);
|
||||||
# endif
|
# endif
|
||||||
List<unsigned int>::operator=(val);
|
|
||||||
|
for (label i = 0; i < size; i++)
|
||||||
|
{
|
||||||
|
set(i, val);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user