title: c++ template specialization in circular queue
body: <p>Hi i am tryng to develop a circular queue, but this implementation works fine for basics type like int float and so on,</p>
  
  <pre><code>template&lt;typename R, size_t aSize=200&gt;
  class CircularQueue{
  public:
  
      explicit CircularQueue(const R &amp; aElement);
  
  
      ~CircularQueue()
      {
  
      }
  
      bool push(const R &amp; aElement);
  
      bool pop(R &amp; aElement);
  
      bool isEmpty() const    ;
  
      bool isFull() const     ;
  private:
      CircularQueue(){}
      CircularQueue(const CircularQueue &amp;);
      const CircularQueue &amp; operator=(const CircularQueue &amp;);
      int incrementar(int  ) const;
          static const size_t capacity=aSize+1;
          R array[capacity];
          volatile int tail;
          volatile int head;
  
  };
  </code></pre>
  
  <p>but when i try to speciallized this to a custom type the compiler tells that i have to call the especif constructor:
   Especif class</p>
  
  <pre><code>    class PutMessage: public  IMetodo, Sujeto&lt;PutMessage&gt;
      {
      public:
         explicit PutMessage(Servant * aServant = 0,Mensaje * aMensaje=0, Observer&lt;PutMessage&gt; * aFuture=0);
          virtual ~PutMessage();
      bool guard() const;
      int getResult() const ;
      void call();
  
      Mensaje * getMensaje() const;
  
      Servant * getServant() const;
  
      bool hasFuture() const;
      private:
      PutMessage();
      Servant * mServant;
      Mensaje * mMensaje;
      int mResult;
      bool mHasFuture;
  };
  }
  </code></pre>
  
  <p>the call to the circular queue:</p>
  
  <pre><code>CircularQueue&lt;PutMessage,32&gt; aCircular(*aMessageQueue);
  </code></pre>
  
  <p>Do i have to reimplement the class to a semispecialization class??</p>