T73 CMeasurementUnit converter strategy based on function pointers.

Because function pointers are literal types, so they can be constexpr.
This commit is contained in:
Mathew Sutcliffe
2017-04-21 02:06:03 +01:00
parent 895190c4d0
commit 48482d8d1e
2 changed files with 30 additions and 40 deletions

View File

@@ -32,8 +32,8 @@ namespace BlackMisc
double CMeasurementUnit::convertFrom(double value, const CMeasurementUnit &unit) const
{
if (this->isNull() || unit.isNull()) return 0;
if (this->m_converter == unit.m_converter) return value;
return this->m_converter->fromDefault(unit.m_converter->toDefault(value));
if (this->m_toDefault == unit.m_toDefault && this->m_fromDefault == unit.m_fromDefault) return value;
return this->m_fromDefault(unit.m_toDefault(value));
}
QString CMeasurementUnit::makeRoundedQStringWithUnit(double value, int digits, bool i18n) const