title: invalid use of template-name without an argument list
body: <p>So i have a class name repository which is just a simple array.Here is a part of the class:</p>
  
  <pre><code>template&lt;class Element&gt;
  class repository {
  private:
      int size;
      int capacity;
      Element* elements;
  </code></pre>
  
  <p>I have another class named participant.I want to have a repository of participants and perform actions on that repository using a new class named controller.But I don`t know how to declare the type of the repository in the controller.</p>
  
  <p>Here is a part of the class participant:</p>
  
  <pre><code>class participant {
  private:
      int position;
      int score;
  </code></pre>
  
  <p>And here is a part from the class controller:</p>
  
  <pre><code>#include "repository.h"
  #include "participant.h"
  class controller {
  private:
      repository repository;
      repository temporary;
      void createCopy();
  public:
      controller();
      controller(repository repo);
  </code></pre>
  
  <p>And I get the errors:</p>
  
  <p>-invalid use of template-name 'repository' without an argument list int the lines with repository repository and repository temporary;</p>
  
  <p>-expected ')' before 'repo' in the line with controller(repository repo);</p>
  
  <p>How should I declare  the type for the repository and temporary in the declaration of class controller so that I won`t get any other errors?</p>