I would look at Boost Spirit
At least the control values โโof the formatter (i.e. float โ string) are sequentially displayed as the top of the count * 1 *
Also, the exact definition of the input format and semantics during parsing can be very well configured using the policy class.
Here is my absolute use of min-dependity qi :: any_real_parser <> and a list of dependencies that it touches:
#include <boost/spirit/include/qi_real.hpp> namespace qi = boost::spirit::qi; int main() { const char input[] = "3.1415926"; const char *f(input); const char *l(f+strlen(input)); qi::any_real_parser<double> x; double parsed; x.parse(f, l, qi::unused, qi::unused, parsed); return 0; }
<sub>
- promotion / concept
- boost / configuration
- boost / detail
- pushing / dropping
- increase / merge
- push / iterator
- boost / math
- boost / mpl
- nudge / optional
- boost / preprocessor
- boost / proto
- gain / range
- boost / regex
- impulse / spirit
- boost / typeof
- boost / type _traits
- enhancement / utility
- boost / option
aligned_storage.hpp, assert.hpp, blank_fwd.hpp, blank.hpp, call_traits.hpp, checked_delete.hpp, concept_check.hpp, config.hpp, cstdint.hpp, current_function.hpp, foreach_fwd.hpp, foreach.hpp, get_pointer. hpp, implicit_cast.hpp, iterator.hpp, limits.hpp, math_fwd.hpp, next_prior.hpp, noncopyable.hpp, none.hpp, none_t.hpp, optional.hpp, ref.hpp, static_assert.hpp, swap .hpp, throw_exception.hpp, type.hpp, utility.hpp, variant.hpp, version.hpp
sub>
1 , for example. http://www.boost.org/doc/libs/1_47_0/libs/spirit/doc/html/spirit/karma/performance_measurements/numeric_performance/double_performance.html