List: Added construction from and assignment to zero

This commit is contained in:
Henry Weller
2016-03-22 08:26:50 +00:00
parent e6e687b67d
commit 5ca4acadd6
5 changed files with 51 additions and 0 deletions

View File

@ -79,6 +79,30 @@ Foam::List<T>::List(const label s, const T& a)
}
template<class T>
Foam::List<T>::List(const label s, const zero)
:
UList<T>(NULL, s)
{
if (this->size_ < 0)
{
FatalErrorInFunction
<< "bad size " << this->size_
<< abort(FatalError);
}
if (this->size_)
{
this->v_ = new T[this->size_];
List_ACCESS(T, (*this), vp);
List_FOR_ALL((*this), i)
List_ELEM((*this), vp, i) = Zero;
List_END_FOR_ALL
}
}
template<class T>
Foam::List<T>::List(const List<T>& a)
:

View File

@ -105,6 +105,9 @@ public:
//- Construct with given size and value for all elements.
List(const label, const T&);
//- Construct with given size initializing all elements to zero.
List(const label, const zero);
//- Copy constructor.
List(const List<T>&);
@ -225,6 +228,9 @@ public:
//- Assignment of all entries to the given value
inline void operator=(const T&);
//- Assignment of all entries to zero
inline void operator=(const zero);
// Istream operator

View File

@ -141,4 +141,11 @@ inline void Foam::List<T>::operator=(const T& t)
}
template<class T>
inline void Foam::List<T>::operator=(const zero)
{
UList<T>::operator=(Zero);
}
// ************************************************************************* //

View File

@ -76,6 +76,16 @@ void Foam::UList<T>::operator=(const T& t)
}
template<class T>
void Foam::UList<T>::operator=(const zero)
{
List_ACCESS(T, (*this), vp);
List_FOR_ALL((*this), i)
List_ELEM((*this), vp, i) = Zero;
List_END_FOR_ALL
}
// * * * * * * * * * * * * * * STL Member Functions * * * * * * * * * * * * //
template<class T>

View File

@ -46,6 +46,7 @@ SourceFiles
#include "label.H"
#include "uLabel.H"
#include "nullObject.H"
#include "zero.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -223,6 +224,9 @@ public:
//- Assignment of all entries to the given value
void operator=(const T&);
//- Assignment of all entries to zero
void operator=(const zero);
// STL type definitions