следования?
не обязательно
А если конфликты?
то их решать
В порядке их следования? :)))
ну блин, разрешение перегрузок в плюсах тоже в порядке объявления?
Это не перегрузки, это ж рантайм.
видимость да, разрешение нет
Ну типа такого: x match { "42": "answer", "42?+"_wc: "extended answer"
ну я не видел реализации которая так может вообще
Ну вот в том же rust с биндингами. Там же объект может сразу в несколько штук матчить
в расте строки по регексу матчить нельзя.
Ну забей на строки, пусть будет Point
поинт же по специфичности тривиально матчится
Мне кажется, что были специфичные случаи, когда порядок деклараций менял выбор перегрузки кодом ниже
Нет, без них
тогда тебе надо будет найти пример
В общем, с порядком объявления нет проблем. Если пользователь через порядок следования веток управляет их приоритетом, это наглядно, это понятная всем концепция
Для таких случаев это просто схлопывание if/else/else...
В примере с designators в одной из ранних версий это прям очень очевидно.
Еще существует концепция, что приоритетней считается более конкретная ветка над менее конкретной
Она действительно существует, однако крайне редко встречается в дикой природе реализациях паттерн-матчинга. Тем более в этом мало смысла, когда возможен очень широкий спектр неоднозначностей. А я уверен, это довольно частый случай для паттерн-матчинга
Есть такой пример, но это не то, что я изначально хотел показать. Уверен, у меня был какой-то пример, работавший ещё на C++17
я не вижу там зависимости от порядка
Обсуждают сегодня