How do I tell whether I should use
my_type bar;
using some_namespace::foo;
foo(bar);
instead of
some_namespace::foo(bar);
when calling my function foo
(that is not within my immediate scope)? Is there a generic "rule" for figuring out whether you should use ADL or not? Which one should I use "by default"?