Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Development
openfoam
Commits
71a3620e
Commit
71a3620e
authored
Sep 23, 2008
by
Mark Olesen
Browse files
List, DynamicList : cosmetics and minor bug-fix
parent
e88b0b49
Changes
5
Hide whitespace changes
Inline
Side-by-side
src/OpenFOAM/containers/Lists/DynamicList/DynamicList.H
View file @
71a3620e
...
...
@@ -26,7 +26,7 @@ Class
Foam::DynamicList
Description
A 1D vector of objects of type \<T\>
which
resizes itself as necessary to
A 1D vector of objects of type \<T\>
that
resizes itself as necessary to
accept the new objects.
Internal storage is a compact array and the list can be shrunk to compact
...
...
@@ -149,7 +149,7 @@ public:
//- Append an element at the end of the list
inline
void
append
(
const
T
&
e
);
//- Re
turn
and re
move
the top element
//- Re
move
and re
turn
the top element
inline
T
remove
();
//- Return non-const access to an element,
...
...
src/OpenFOAM/containers/Lists/DynamicList/DynamicListI.H
View file @
71a3620e
...
...
@@ -120,7 +120,6 @@ inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::clear()
template
<
class
T
,
unsigned
SizeInc
,
unsigned
SizeMult
,
unsigned
SizeDiv
>
inline
void
Foam
::
DynamicList
<
T
,
SizeInc
,
SizeMult
,
SizeDiv
>::
clearStorage
()
{
List
<
T
>::
size
()
=
allocSize_
;
// make List<T> consistent
List
<
T
>::
clear
();
allocSize_
=
0
;
}
...
...
@@ -167,7 +166,6 @@ Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::transfer
{
allocSize_
=
l
.
allocSize
();
List
<
T
>::
transfer
(
l
);
// take over storage
l
.
allocSize_
=
0
;
}
...
...
@@ -202,7 +200,7 @@ inline T Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::remove()
{
FatalErrorIn
(
"
void
Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::remove()"
"Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::remove()"
)
<<
"List is empty"
<<
abort
(
FatalError
);
}
...
...
@@ -267,7 +265,10 @@ inline void Foam::DynamicList<T, SizeInc, SizeMult, SizeDiv>::operator=
)
{
List
<
T
>::
operator
=
(
l
);
allocSize_
=
l
.
allocSize
();
// allocSize_ = l.allocSize(); // wrong
allocSize_
=
List
<
T
>::
size
();
// ^^^^ with this change, we could just use
// DynamicList::operator=(const List<T>&) instead
}
...
...
src/OpenFOAM/containers/Lists/List/List.C
View file @
71a3620e
...
...
@@ -38,14 +38,11 @@ License
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
// * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * * //
// Construct with length specified
template
<
class
T
>
List
<
T
>::
List
(
const
label
s
)
Foam
::
List
<
T
>::
List
(
const
label
s
)
:
UList
<
T
>
(
NULL
,
s
)
{
...
...
@@ -69,7 +66,7 @@ List<T>::List(const label s)
// Construct with length and single value specified
template
<
class
T
>
List
<
T
>::
List
(
const
label
s
,
const
T
&
a
)
Foam
::
List
<
T
>::
List
(
const
label
s
,
const
T
&
a
)
:
UList
<
T
>
(
NULL
,
s
)
{
...
...
@@ -98,7 +95,7 @@ List<T>::List(const label s, const T& a)
// Construct as copy
template
<
class
T
>
List
<
T
>::
List
(
const
List
<
T
>&
a
)
Foam
::
List
<
T
>::
List
(
const
List
<
T
>&
a
)
:
UList
<
T
>
(
NULL
,
a
.
size_
)
{
...
...
@@ -130,7 +127,7 @@ List<T>::List(const List<T>& a)
// Construct as copy or re-use as specified.
template
<
class
T
>
List
<
T
>::
List
(
List
<
T
>&
a
,
bool
reUse
)
Foam
::
List
<
T
>::
List
(
List
<
T
>&
a
,
bool
reUse
)
:
UList
<
T
>
(
NULL
,
a
.
size_
)
{
...
...
@@ -166,10 +163,10 @@ List<T>::List(List<T>& a, bool reUse)
}
// Construct given
size and
start and end iterators.
// Construct given start and end iterators.
template
<
class
T
>
template
<
class
InputIterator
>
List
<
T
>::
List
(
InputIterator
first
,
InputIterator
last
)
Foam
::
List
<
T
>::
List
(
InputIterator
first
,
InputIterator
last
)
{
label
s
=
0
;
for
...
...
@@ -200,8 +197,8 @@ List<T>::List(InputIterator first, InputIterator last)
// Construct as copy of FixedList<T, Size>
template
<
class
T
>
template
<
label
Size
>
List
<
T
>::
List
(
const
FixedList
<
T
,
Size
>&
fl
)
template
<
Foam
::
label
Size
>
Foam
::
List
<
T
>::
List
(
const
FixedList
<
T
,
Size
>&
fl
)
:
UList
<
T
>
(
NULL
,
Size
)
{
...
...
@@ -223,7 +220,7 @@ List<T>::List(const FixedList<T, Size>& fl)
// Construct as copy of PtrList<T>
template
<
class
T
>
List
<
T
>::
List
(
const
PtrList
<
T
>&
sptrl
)
Foam
::
List
<
T
>::
List
(
const
PtrList
<
T
>&
sptrl
)
:
UList
<
T
>
(
NULL
,
sptrl
.
size
())
{
...
...
@@ -245,7 +242,7 @@ List<T>::List(const PtrList<T>& sptrl)
// Construct as copy of SLList<T>
template
<
class
T
>
List
<
T
>::
List
(
const
SLList
<
T
>&
sll
)
Foam
::
List
<
T
>::
List
(
const
SLList
<
T
>&
sll
)
:
UList
<
T
>
(
NULL
,
sll
.
size
())
{
...
...
@@ -273,7 +270,7 @@ List<T>::List(const SLList<T>& sll)
// Construct as copy of IndirectList<T>
template
<
class
T
>
List
<
T
>::
List
(
const
IndirectList
<
T
>&
idl
)
Foam
::
List
<
T
>::
List
(
const
IndirectList
<
T
>&
idl
)
:
UList
<
T
>
(
NULL
,
idl
.
size
())
{
...
...
@@ -295,7 +292,7 @@ List<T>::List(const IndirectList<T>& idl)
// Construct as copy of BiIndirectList<T>
template
<
class
T
>
List
<
T
>::
List
(
const
BiIndirectList
<
T
>&
idl
)
Foam
::
List
<
T
>::
List
(
const
BiIndirectList
<
T
>&
idl
)
:
UList
<
T
>
(
NULL
,
idl
.
size
())
{
...
...
@@ -319,7 +316,7 @@ List<T>::List(const BiIndirectList<T>& idl)
// Destroy list elements
template
<
class
T
>
List
<
T
>::~
List
()
Foam
::
List
<
T
>::~
List
()
{
if
(
this
->
v_
)
delete
[]
this
->
v_
;
}
...
...
@@ -328,7 +325,7 @@ List<T>::~List()
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template
<
class
T
>
const
List
<
T
>&
List
<
T
>::
null
()
const
Foam
::
List
<
T
>&
Foam
::
List
<
T
>::
null
()
{
List
<
T
>*
nullPtr
=
reinterpret_cast
<
List
<
T
>*>
(
NULL
);
return
*
nullPtr
;
...
...
@@ -336,7 +333,7 @@ const List<T>& List<T>::null()
template
<
class
T
>
void
List
<
T
>::
setSize
(
const
label
newSize
)
void
Foam
::
List
<
T
>::
setSize
(
const
label
newSize
)
{
if
(
newSize
<
0
)
{
...
...
@@ -382,7 +379,7 @@ void List<T>::setSize(const label newSize)
template
<
class
T
>
void
List
<
T
>::
setSize
(
const
label
newSize
,
const
T
&
a
)
void
Foam
::
List
<
T
>::
setSize
(
const
label
newSize
,
const
T
&
a
)
{
label
oldSize
=
this
->
size_
;
this
->
setSize
(
newSize
);
...
...
@@ -397,7 +394,7 @@ void List<T>::setSize(const label newSize, const T& a)
template
<
class
T
>
void
List
<
T
>::
clear
()
void
Foam
::
List
<
T
>::
clear
()
{
if
(
this
->
v_
)
delete
[]
this
->
v_
;
this
->
size_
=
0
;
...
...
@@ -408,10 +405,9 @@ void List<T>::clear()
// Transfer the contents of the argument List into this List
// and anull the argument list
template
<
class
T
>
void
List
<
T
>::
transfer
(
List
<
T
>&
a
)
void
Foam
::
List
<
T
>::
transfer
(
List
<
T
>&
a
)
{
if
(
this
->
v_
)
delete
[]
this
->
v_
;
this
->
size_
=
a
.
size_
;
this
->
v_
=
a
.
v_
;
...
...
@@ -424,42 +420,41 @@ void List<T>::transfer(List<T>& a)
// and anull the argument list
template
<
class
T
>
template
<
unsigned
SizeInc
,
unsigned
SizeMult
,
unsigned
SizeDiv
>
void
List
<
T
>::
transfer
(
DynamicList
<
T
,
SizeInc
,
SizeMult
,
SizeDiv
>&
a
)
void
Foam
::
List
<
T
>::
transfer
(
DynamicList
<
T
,
SizeInc
,
SizeMult
,
SizeDiv
>&
a
)
{
if
(
this
->
v_
)
delete
[]
this
->
v_
;
this
->
size_
=
a
.
size_
;
this
->
v_
=
a
.
v_
;
a
.
size_
=
0
;
a
.
allocSize_
=
0
;
a
.
v_
=
0
;
a
.
allocSize_
=
0
;
}
template
<
class
T
>
void
sort
(
List
<
T
>&
a
)
void
Foam
::
sort
(
List
<
T
>&
a
)
{
std
::
sort
(
a
.
begin
(),
a
.
end
());
}
template
<
class
T
,
class
Cmp
>
void
sort
(
List
<
T
>&
a
,
const
Cmp
&
cmp
)
void
Foam
::
sort
(
List
<
T
>&
a
,
const
Cmp
&
cmp
)
{
std
::
sort
(
a
.
begin
(),
a
.
end
(),
cmp
);
}
template
<
class
T
>
void
stableSort
(
List
<
T
>&
a
)
void
Foam
::
stableSort
(
List
<
T
>&
a
)
{
std
::
stable_sort
(
a
.
begin
(),
a
.
end
());
}
template
<
class
T
,
class
Cmp
>
void
stableSort
(
List
<
T
>&
a
,
const
Cmp
&
cmp
)
void
Foam
::
stableSort
(
List
<
T
>&
a
,
const
Cmp
&
cmp
)
{
std
::
stable_sort
(
a
.
begin
(),
a
.
end
(),
cmp
);
}
...
...
@@ -469,7 +464,7 @@ void stableSort(List<T>& a, const Cmp& cmp)
// Assignment to UList operator. Takes linear time.
template
<
class
T
>
void
List
<
T
>::
operator
=
(
const
UList
<
T
>&
a
)
void
Foam
::
List
<
T
>::
operator
=
(
const
UList
<
T
>&
a
)
{
if
(
a
.
size_
!=
this
->
size_
)
{
...
...
@@ -501,7 +496,7 @@ void List<T>::operator=(const UList<T>& a)
// Assignment operator. Takes linear time.
template
<
class
T
>
void
List
<
T
>::
operator
=
(
const
List
<
T
>&
a
)
void
Foam
::
List
<
T
>::
operator
=
(
const
List
<
T
>&
a
)
{
if
(
this
==
&
a
)
{
...
...
@@ -516,7 +511,7 @@ void List<T>::operator=(const List<T>& a)
// Assignment operator. Takes linear time.
template
<
class
T
>
void
List
<
T
>::
operator
=
(
const
SLList
<
T
>&
sll
)
void
Foam
::
List
<
T
>::
operator
=
(
const
SLList
<
T
>&
sll
)
{
if
(
sll
.
size
()
!=
this
->
size_
)
{
...
...
@@ -544,7 +539,7 @@ void List<T>::operator=(const SLList<T>& sll)
// Assignment operator. Takes linear time.
template
<
class
T
>
void
List
<
T
>::
operator
=
(
const
IndirectList
<
T
>&
idl
)
void
Foam
::
List
<
T
>::
operator
=
(
const
IndirectList
<
T
>&
idl
)
{
if
(
idl
.
size
()
!=
this
->
size_
)
{
...
...
@@ -566,7 +561,7 @@ void List<T>::operator=(const IndirectList<T>& idl)
// Assignment operator. Takes linear time.
template
<
class
T
>
void
List
<
T
>::
operator
=
(
const
BiIndirectList
<
T
>&
idl
)
void
Foam
::
List
<
T
>::
operator
=
(
const
BiIndirectList
<
T
>&
idl
)
{
if
(
idl
.
size
()
!=
this
->
size_
)
{
...
...
@@ -585,11 +580,6 @@ void List<T>::operator=(const BiIndirectList<T>& idl)
}
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
}
// End namespace Foam
// * * * * * * * * * * * * * * * * IOStream operators * * * * * * * * * * * //
#include
"ListIO.C"
...
...
src/OpenFOAM/containers/Lists/List/List.H
View file @
71a3620e
...
...
@@ -96,7 +96,7 @@ public:
//- Construct as copy or re-use as specified.
List
(
List
<
T
>&
,
bool
reUse
);
//- Construct given
size and
start and end iterators.
//- Construct given start and end iterators.
template
<
class
InputIterator
>
List
(
InputIterator
first
,
InputIterator
last
);
...
...
@@ -142,6 +142,9 @@ public:
//- Return the number of elements in the UList.
inline
label
size
()
const
;
//- Override size to be inconsistent with allocated storage.
// Use with care.
inline
label
&
size
();
// Edit
...
...
@@ -166,11 +169,6 @@ public:
//- Return subscript-checked element of UList.
inline
T
&
newElmt
(
const
label
);
//- Override size to be inconsistent with allocated storage.
// Use with care.
inline
label
&
size
();
// Member operators
//- Assignment from UList operator. Takes linear time.
...
...
src/OpenFOAM/containers/Lists/List/ListIO.C
View file @
71a3620e
...
...
@@ -30,16 +30,11 @@ License
#include
"SLList.H"
#include
"contiguous.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace
Foam
{
// * * * * * * * * * * * * * * * IOstream Operators * * * * * * * * * * * * //
// Construct from Istream
template
<
class
T
>
List
<
T
>::
List
(
Istream
&
is
)
Foam
::
List
<
T
>::
List
(
Istream
&
is
)
:
UList
<
T
>
(
NULL
,
0
)
{
...
...
@@ -48,7 +43,7 @@ List<T>::List(Istream& is)
template
<
class
T
>
Istream
&
operator
>>
(
Istream
&
is
,
List
<
T
>&
L
)
Foam
::
Istream
&
Foam
::
operator
>>
(
Istream
&
is
,
List
<
T
>&
L
)
{
// Anull list
L
.
setSize
(
0
);
...
...
@@ -161,9 +156,4 @@ Istream& operator>>(Istream& is, List<T>& L)
return
is
;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
}
// End namespace Foam
// ************************************************************************* //
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment