dimensionedType: Add support for optional read and re-read of name and dimensions
Supports rho 1; rho [1 -3 0 0 0] 1; rho rho [1 -3 0 0 0] 1;
This commit is contained in:
parent
9ba839942e
commit
15ce7dcf0a
@ -131,6 +131,16 @@ dimensioned<Type>::dimensioned
|
|||||||
token nextToken(is);
|
token nextToken(is);
|
||||||
is.putBack(nextToken);
|
is.putBack(nextToken);
|
||||||
|
|
||||||
|
// Check if the original format is used in which the name is provided
|
||||||
|
// and reset the name to that read
|
||||||
|
if (nextToken.isWord())
|
||||||
|
{
|
||||||
|
is >> name_;
|
||||||
|
is >> nextToken;
|
||||||
|
is.putBack(nextToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the dimensions are provided compare with the argument
|
||||||
if (nextToken == token::BEGIN_SQR)
|
if (nextToken == token::BEGIN_SQR)
|
||||||
{
|
{
|
||||||
dimensionSet dims(is);
|
dimensionSet dims(is);
|
||||||
@ -391,8 +401,26 @@ dimensioned<Type> min
|
|||||||
template <class Type>
|
template <class Type>
|
||||||
Istream& operator>>(Istream& is, dimensioned<Type>& dt)
|
Istream& operator>>(Istream& is, dimensioned<Type>& dt)
|
||||||
{
|
{
|
||||||
// do a stream read op for a Type and a dimensions()et
|
token nextToken(is);
|
||||||
is >> dt.name_ >> dt.dimensions_ >> dt.value_;
|
is.putBack(nextToken);
|
||||||
|
|
||||||
|
// Check if the original format is used in which the name is provided
|
||||||
|
// and reset the name to that read
|
||||||
|
if (nextToken.isWord())
|
||||||
|
{
|
||||||
|
is >> dt.name_;
|
||||||
|
is >> nextToken;
|
||||||
|
is.putBack(nextToken);
|
||||||
|
}
|
||||||
|
|
||||||
|
// If the dimensions are provided reset the dimensions to those read
|
||||||
|
if (nextToken == token::BEGIN_SQR)
|
||||||
|
{
|
||||||
|
is >> dt.dimensions_;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read the value
|
||||||
|
is >> dt.value_;
|
||||||
|
|
||||||
// Check state of Istream
|
// Check state of Istream
|
||||||
is.check("Istream& operator>>(Istream&, dimensioned<Type>&)");
|
is.check("Istream& operator>>(Istream&, dimensioned<Type>&)");
|
||||||
|
Loading…
Reference in New Issue
Block a user