#ifndef OSRM_ENGINE_ALGORITHM_HPP #define OSRM_ENGINE_ALGORITHM_HPP #include namespace osrm { namespace engine { namespace algorithm { // Contraction Hiearchy struct CH final { }; // Contraction Hiearchy with core struct CoreCH final { }; template const char* name(); template<> inline const char* name() { return "CH"; } template<> inline const char* name() { return "CoreCH"; } } namespace algorithm_trais { template struct HasAlternativePathSearch final : std::false_type { }; template struct HasShortestPathSearch final : std::false_type { }; template struct HasDirectShortestPathSearch final : std::false_type { }; template struct HasMapMatching final : std::false_type { }; template struct HasManyToManySearch final : std::false_type { }; template struct HasGetTileTurns final : std::false_type { }; template <> struct HasAlternativePathSearch final : std::true_type { }; template <> struct HasShortestPathSearch final : std::true_type { }; template <> struct HasDirectShortestPathSearch final : std::true_type { }; template <> struct HasMapMatching final : std::true_type { }; template <> struct HasManyToManySearch final : std::true_type { }; template <> struct HasGetTileTurns final : std::true_type { }; // disbaled because of perfomance reasons template <> struct HasAlternativePathSearch final : std::false_type { }; template <> struct HasManyToManySearch final : std::false_type { }; template <> struct HasShortestPathSearch final : std::true_type { }; template <> struct HasDirectShortestPathSearch final : std::true_type { }; template <> struct HasMapMatching final : std::true_type { }; template <> struct HasGetTileTurns final : std::true_type { }; } } } #endif