Do not modify the end iterator for parameter parsing, too
This commit is contained in:
parent
6f0b6a8158
commit
d3dbca374d
@ -30,7 +30,7 @@ using is_parameter_t =
|
||||
// Starts parsing and iter and modifies it until iter == end or parsing failed
|
||||
template <typename ParameterT,
|
||||
typename std::enable_if<detail::is_parameter_t<ParameterT>::value, int>::type = 0>
|
||||
boost::optional<ParameterT> parseParameters(std::string::iterator &iter, std::string::iterator end);
|
||||
boost::optional<ParameterT> parseParameters(std::string::iterator &iter, const std::string::iterator end);
|
||||
|
||||
// Copy on purpose because we need mutability
|
||||
template <typename ParameterT,
|
||||
|
@ -25,7 +25,7 @@ template <typename ParameterT,
|
||||
typename GrammarT,
|
||||
typename std::enable_if<detail::is_parameter_t<ParameterT>::value, int>::type = 0,
|
||||
typename std::enable_if<detail::is_grammar_t<GrammarT>::value, int>::type = 0>
|
||||
boost::optional<ParameterT> parseParameters(std::string::iterator &iter, std::string::iterator end)
|
||||
boost::optional<ParameterT> parseParameters(std::string::iterator &iter, const std::string::iterator end)
|
||||
{
|
||||
GrammarT grammar;
|
||||
const auto result = boost::spirit::qi::parse(iter, end, grammar);
|
||||
@ -40,21 +40,21 @@ boost::optional<ParameterT> parseParameters(std::string::iterator &iter, std::st
|
||||
|
||||
template <>
|
||||
boost::optional<engine::api::RouteParameters> parseParameters(std::string::iterator &iter,
|
||||
std::string::iterator end)
|
||||
const std::string::iterator end)
|
||||
{
|
||||
return detail::parseParameters<engine::api::RouteParameters, RouteParametersGrammar>(iter, end);
|
||||
}
|
||||
|
||||
template <>
|
||||
boost::optional<engine::api::TableParameters> parseParameters(std::string::iterator &iter,
|
||||
std::string::iterator end)
|
||||
const std::string::iterator end)
|
||||
{
|
||||
return detail::parseParameters<engine::api::TableParameters, TableParametersGrammar>(iter, end);
|
||||
}
|
||||
|
||||
template <>
|
||||
boost::optional<engine::api::NearestParameters> parseParameters(std::string::iterator &iter,
|
||||
std::string::iterator end)
|
||||
const std::string::iterator end)
|
||||
{
|
||||
return detail::parseParameters<engine::api::NearestParameters, NearestParametersGrammar>(iter,
|
||||
end);
|
||||
@ -62,21 +62,21 @@ boost::optional<engine::api::NearestParameters> parseParameters(std::string::ite
|
||||
|
||||
template <>
|
||||
boost::optional<engine::api::TripParameters> parseParameters(std::string::iterator &iter,
|
||||
std::string::iterator end)
|
||||
const std::string::iterator end)
|
||||
{
|
||||
return detail::parseParameters<engine::api::TripParameters, TripParametersGrammar>(iter, end);
|
||||
}
|
||||
|
||||
template <>
|
||||
boost::optional<engine::api::MatchParameters> parseParameters(std::string::iterator &iter,
|
||||
std::string::iterator end)
|
||||
const std::string::iterator end)
|
||||
{
|
||||
return detail::parseParameters<engine::api::MatchParameters, MatchParametersGrammar>(iter, end);
|
||||
}
|
||||
|
||||
template <>
|
||||
boost::optional<engine::api::TileParameters> parseParameters(std::string::iterator &iter,
|
||||
std::string::iterator end)
|
||||
const std::string::iterator end)
|
||||
{
|
||||
return detail::parseParameters<engine::api::TileParameters, TileParametersGrammar>(iter, end);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user