Почему был изобретен поиск, зависимый от аргументов (ADL)? Просто чтобы мы могли написать cout << stuff
вместо std :: operator << (cout, stuff)
? Если это так, то почему ADL не был ограничен операторами, а не всеми функциями?
Можно ли было предотвратить внедрение ADL, если бы у C ++ был какой-то другой способ делать общий вывод как встроенных, так и определяемых пользователем типы, например типобезопасный printf
через вариативные шаблоны?