{
throw 0;
}
int main() {
std::vector<std::pair<int, int>> v = {
{ 0, 0 },
{ 1, 1 }
};
std::sort(v.begin(), v.end());
//v[0] < v[1];
}
@antoshkka слушайте, я вот неожиданно узнал, что ADL подразумевает просмотр в том числе шаблонных параметров, и если в данном примере заменить int на myclass, поведение изменится и станет доступной врезка в name lookup для std
зачем вообще существует правило просмотра шаблонных параметров? почему его просто не взять и запретить?
А зачем запрещать? Очень удобная штука, особенно для [де]сериализации, когда есть очень много форматов
Из недавних мыслей по расширению функциональности nlohman_json, если я правильно понимаю, моя идея будет работать именно благодаря этому, так что может быть полезно для совмещения adl и тег-диспатчинга, в параметре тега можно найти нужный тип и по нему включить adl. Потому что просто по возвращаемому типу не получится(?)
Затем что к АДЛ долго шли это сверхплюха, чтоб ее запрещать
Саттер думал запретить это, ссылаясь на то что это ускорит компиляцию Но какие-то пректы на это полагалсь и идею он оставил... а мы начали её использовать https://youtu.be/mkPTreWiglk
Обсуждают сегодня