Por que o ADL não encontra modelos de função?
Que parte da especificação C ++ restringe a pesquisa dependente de argumento da localização de modelos de função no conjunto de espaços para nome associados? Em outras palavras, por que a última chamada emmain
abaixo falha ao compilar?
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.
}