osrm-backend/extractor
Daniel J. Hofmann f9f0ffb64d Remove hand written conversion code and replace with stdlib features.
With C++11 the stdlib gains:

- `std::stoi` function family to convert from `std::string` to integral type

- `std::to_string` to convert from number types to `std::string`

The only reason for hand-writing the conversion code therefore is
performance. I benchmarked an `osrm-extract` with the hand-written code
against one with the stdlib conversion features and could not find any
significant difference (we switch back and forth between C++ and Lua,
shaving off a few us in conversion doesn't gain us much).

Formatting arithmetic types in the default format with given precision
requires streams, but is doable in a few lines of idiomatic stdlib code.

For this, there is now the following function template available:

    template <Arithmetic T, int Precision = 6>
    inline std::string to_string_with_precision(const T);

that requires integral or floating point types and returns a formatted
string in the defaukt format with the given precision applied.

In addition this completely rips out Boost.Spirit from the `casts.hpp`
header, resulting in faster compile times.

Boom!

References:

- http://en.cppreference.com/w/cpp/string/basic_string/stol
- http://en.cppreference.com/w/cpp/string/basic_string/to_string
- http://www.kumobius.com/2013/08/c-string-to-int/
2015-09-29 16:15:54 +02:00
..
extraction_containers.cpp Caches iterators instead of invoking function calls on every iteration. 2015-09-15 12:09:39 +02:00
extraction_containers.hpp Fix processing for data files with incorrect node references 2015-09-10 12:22:03 +02:00
extraction_helper_functions.hpp Remove hand written conversion code and replace with stdlib features. 2015-09-29 16:15:54 +02:00
extraction_node.hpp change copyright line from personal names to project 2015-02-19 09:19:51 +01:00
extraction_way.hpp Remove unused memebers and rename to currrent style convention 2015-07-01 18:07:29 +02:00
extractor_callbacks.cpp Use Boost.Optional instead of custom optional monad implementation. 2015-09-28 15:00:21 +02:00
extractor_callbacks.hpp Use Boost.Optional instead of custom optional monad implementation. 2015-09-28 15:00:21 +02:00
extractor_options.cpp First step into overhauling the edge storage 2015-06-01 17:22:12 +02:00
extractor_options.hpp First step into overhauling the edge storage 2015-06-01 17:22:12 +02:00
extractor.cpp Use Boost.Optional instead of custom optional monad implementation. 2015-09-28 15:00:21 +02:00
extractor.hpp Modernize the code base to C++11 standards and beyond. 2015-08-18 12:56:34 +02:00
first_and_last_segment_of_way.hpp change copyright line from personal names to project 2015-02-19 09:19:51 +01:00
internal_extractor_edge.hpp Modernize the code base to C++11 standards and beyond. 2015-08-18 12:56:34 +02:00
restriction_parser.cpp Use Boost.Optional instead of custom optional monad implementation. 2015-09-28 15:00:21 +02:00
restriction_parser.hpp Do not use an incomplete type with value semantics 2015-09-28 16:50:36 +02:00
scripting_environment.cpp Implement raster source feature to read data from third-party sources, to be used in lua profiles. 2015-09-03 22:28:18 -07:00
scripting_environment.hpp Add documentation to ScriptingEnvironment 2015-04-21 20:00:58 +02:00