- Any trailing whitespace when parsing from strings or character buffers
is ignored rather than being treated as an error. This is consistent
with behaviour when reading from an Istream and with leading whitespace
being ignored in the underlying atof/atod, strtof/strtod... functions.
- Allow parsing directly from a std::string instead of just from a 'char*'.
This reflects the C++11 addition of std::stod to complement the C
functions strtod. This also makes it easier to parse string directly
without using an IStringStream.
- Two-parameter parsing methods return success/failure.
Eg,
if (readInt32(str, &int32Val)) ...
- One-parameter parsing methods return the value on success or
emit a FatalIOError.
Eg,
const char* buf;
int32Val = readInt32(buf, &);
- Improved consistency when parsing unsigned ints.
Use strtoimax and strtoumax throughout.
- Rename readDoubleScalar -> readDouble, readFloatScalar -> readFloat.
Using the primitive name directly instead of the Foam typedef for
better consistency with readInt32 etc.
- Clean/improve parseNasScalar.
Handle normal numbers directly, reduce some operations.
- previous only checked for clouds at the last instance and only
detected lagrangian fields from the first cloud.
Now check for clouds at all instances and detect all of their fields
as well.
- affects surfaceFieldValue, volFieldValue.
Use 'none' (if desired) to explicitly suppress the weightField, but
generally better to use a different operation.
There are a few issues:
- error would only throw exceptions if not parallel
- if we change this we also need to make sure the functionObjectList
construction is synchronised
- bounding box overlap was not returning the correct status so the code
to avoid the issue of 'badly formed bounding box' was not triggered.
- actually prevent this type of thing:
Switch sw;
sw = "none";
without relinquishing automatic conversion to/from bool.
Nonetheless, make construct from string explicit.
- Added some minor optimization for the lookup of the switch names.
- can be useful either for flow-rate weighting where backflow
is to be ignored in the average, or for flow-rate weighting
on surfaces with inconsistent orientation.
Reworked to code to make better use of Enum (the NamedEnum
replacement). Enum doesn't require contiguous enumeration values,
which lets us use bitmasking of similar operations to reduce
duplicate code.