osrm-backend/routing_algorithms
Daniel J. Hofmann 82dd5d8ccf Use Boost.Optional instead of custom optional monad implementation.
This switches out the `<variant/optional.hpp>` implementation of the
optional monad to the one from Boost.

The following trick makes sure we keep compile times down:

- use `<boost/optional/optional_fwd.hpp>` to forward declare the
  optional type in header, then include the full blown optional header
  only in the implementation file.

- do the same for the files we touch, e.g. forward declare osmium types,
  allowing us to remove the osmium header dependency from our headers:

      `namespace osmium { class Relation; }

  and then include the appropriate osmium headers in the implementation
  file only. We should do this globally...

References:

- http://www.boost.org/doc/libs/1_59_0/libs/optional/doc/html/index.html
- https://github.com/osmcode/libosmium/issues/123
2015-09-28 15:00:21 +02:00
..
alternative_path.hpp Fix inversion of sign 2015-06-17 23:25:16 +02:00
direct_shortest_path.hpp Make sure to terminate when the core heaps are empty 2015-08-19 12:27:44 +02:00
many_to_many.hpp use CRTP instead of virtual functions in routing plugins 2015-03-02 11:55:55 +01:00
map_matching.hpp Use Boost.Optional instead of custom optional monad implementation. 2015-09-28 15:00:21 +02:00
routing_base.hpp Move calculate_coordinate to algorithms/ 2015-08-12 13:02:18 +02:00
shortest_path.hpp Fix inversion of sign 2015-06-17 23:25:16 +02:00