Warum findet ADL keine Funktionsvorlagen?
Welcher Teil der C ++ - Spezifikation beschränkt die argumentabhängige Suche darauf, Funktionsvorlagen in der Menge der zugeordneten Namespaces zu finden? Mit anderen Worten, warum wird der letzte Aufruf inmain
unten nicht kompilieren?
namespace ns {
struct foo {};
template<int i> void frob(foo const&) {}
void non_template(foo const&) {}
}
int main() {
ns::foo f;
non_template(f); // This is fine.
frob<0>(f); // This is not.
}