title: clang error "explicit instantiation does not refer to a function template" across multiple namespaces
body: <p>I'm trying to <strong>reuse existing templated functions from a namespace in my own namespace</strong> and explicitly instantiate them for code coverage reasons.</p>
  <p>The following code compiles with gcc 9.3 but does <strong>not</strong> compile with clang 10.0.0</p>
  <pre><code>namespace bar {
      template&lt;typename T&gt;
      T func(T arg){ return arg;};
  }
  
  namespace foo {
      using bar::func;
  }
  
  template int foo::func&lt;int&gt;(int);
  
  int main()
  { }
  </code></pre>
  <p>View example <a href="https://godbolt.org/z/affeWq" rel="nofollow noreferrer">here</a></p>
  <p>If i instantiate the template function as</p>
  <pre><code>template int bar::func&lt;int&gt;(int);
  </code></pre>
  <p>clang compiles as well. But this is not what i want.</p>
  <p><strong>Is it possible to explicitly instantiate a template function across namespaces with clang?</strong></p>
  <p><strong>Why do gcc and clang give different results?</strong></p>