Я ищу библиотеку C ++, которая может анализировать предоставленные пользователем строки, такие как следующие:
25 meters/day
3.4 light-years/s
10 cm^3 yr^-1
И вернуть их как объекты, которые можно добавлять, умножать и так далее.
Существует ли такая вещь?
Если вы знаете измерение заблаговременно (и я полагаю, что вы это делаете, если решаете реальную физическую проблему), вы все равно можете использовать Boost.Units, поскольку коэффициент преобразования всегда должен существовать (быть определенным). Как здесь: http://www.boost.org/doc/libs/1_37_0/doc/html/boost_units/Examples.html#boost_units.Examples.RuntimeUnits
Если проблема на самом деле заключается в разборе имен / операций модуля, то может помочь Boost.Spirit или C ++ regex.
Других решений пока нет …