title: unseen syntax: struct::template X
body: <p>I stumbled over a piece of code that I do not understand.
  In one file:</p>
  
  <pre><code>namespace traits {
    template &lt;typename... Base&gt;
    struct use_ : Base... {
    };
  
  /* some more stuff here */
  
    using useDefaults = use_&lt;&gt;;
  }
  </code></pre>
  
  <p>and in another file:</p>
  
  <pre><code>template&lt;typename T&gt;
  using InputHandle_t = typename Traits::useDefaults::template InputHandle&lt;T&gt;;
  </code></pre>
  
  <p>What I do not understand the <code>useDefaults::template something</code> syntax.
  What does this do?</p>
  
  <p>PS: If I did not give enough context to understand my problem, please let me know!</p>