use ADL and explicit instantiation for map matching

This commit is contained in:
Michael Krasnyk 2017-03-31 15:32:04 +02:00 committed by Patrick Niklaus
parent cf17a3a4c3
commit 7726576bb7
2 changed files with 23 additions and 44 deletions

View File

@ -30,8 +30,9 @@ SubMatchingList mapMatching(SearchEngineData<Algorithm> &engine_working_data,
const std::vector<unsigned> &trace_timestamps,
const std::vector<boost::optional<double>> &trace_gps_precision,
const bool allow_splitting);
}
}
}
} // namespace routing_algorithms
} // namespace engine
} // namespace osrm
#endif /* MAP_MATCHING_HPP */

View File

@ -48,8 +48,7 @@ unsigned getMedianSampleTime(const std::vector<unsigned> &timestamps)
}
template <typename Algorithm>
SubMatchingList
mapMatchingImpl(SearchEngineData<Algorithm> &engine_working_data,
SubMatchingList mapMatching(SearchEngineData<Algorithm> &engine_working_data,
const datafacade::ContiguousInternalMemoryDataFacade<Algorithm> &facade,
const CandidateLists &candidates_list,
const std::vector<util::Coordinate> &trace_coordinates,
@ -220,7 +219,7 @@ mapMatchingImpl(SearchEngineData<Algorithm> &engine_working_data,
}
double network_distance =
ch::getNetworkDistance(facade,
getNetworkDistance(facade,
forward_heap,
reverse_heap,
forward_core_heap,
@ -420,44 +419,23 @@ mapMatchingImpl(SearchEngineData<Algorithm> &engine_working_data,
return sub_matchings;
}
template <>
SubMatchingList
template SubMatchingList
mapMatching(SearchEngineData<ch::Algorithm> &engine_working_data,
const datafacade::ContiguousInternalMemoryDataFacade<ch::Algorithm> &facade,
const CandidateLists &candidates_list,
const std::vector<util::Coordinate> &trace_coordinates,
const std::vector<unsigned> &trace_timestamps,
const std::vector<boost::optional<double>> &trace_gps_precision,
const bool use_tidying)
{
return mapMatchingImpl(engine_working_data,
facade,
candidates_list,
trace_coordinates,
trace_timestamps,
trace_gps_precision,
use_tidying);
}
const bool allow_splitting);
template <>
SubMatchingList
template SubMatchingList
mapMatching(SearchEngineData<corech::Algorithm> &engine_working_data,
const datafacade::ContiguousInternalMemoryDataFacade<corech::Algorithm> &facade,
const CandidateLists &candidates_list,
const std::vector<util::Coordinate> &trace_coordinates,
const std::vector<unsigned> &trace_timestamps,
const std::vector<boost::optional<double>> &trace_gps_precision,
const bool use_tidying)
{
return mapMatchingImpl(engine_working_data,
facade,
candidates_list,
trace_coordinates,
trace_timestamps,
trace_gps_precision,
use_tidying);
}
const bool allow_splitting);
} // namespace routing_algorithms
} // namespace engine