Base: Quantity: use isDimensionless whenever feasible

Quantity is often queried for Unit just to see if it has a dimension.
Ask Quantity directly using isDimensionless() method and modify that
method not to care about Quantity value validity; no user was ever
asking for value validity.
This commit is contained in:
Ladislav Michl
2025-04-10 17:43:41 +02:00
parent f486b7c84b
commit 913c30429c
10 changed files with 31 additions and 58 deletions

View File

@@ -183,7 +183,7 @@ Quantity Quantity::operator/(double factor) const
Quantity Quantity::pow(const Quantity& other) const
{
if (!other.myUnit.isEmpty()) {
if (!other.isDimensionless()) {
throw Base::UnitsMismatchError("Quantity::pow(): exponent must not have a unit");
}
@@ -273,7 +273,7 @@ std::string Quantity::getSafeUserString() const
/// true if it has a number without a unit
bool Quantity::isDimensionless() const
{
return isValid() && myUnit.isEmpty();
return myUnit.isEmpty();
}
/// true if it has a specific unit or no dimension.
@@ -282,12 +282,6 @@ bool Quantity::isDimensionlessOrUnit(const Unit& unit) const
return isDimensionless() || myUnit == unit;
}
// true if it has a number and a valid unit
bool Quantity::isQuantity() const
{
return isValid() && !myUnit.isEmpty();
}
// true if it has a number with or without a unit
bool Quantity::isValid() const
{