binary '==' : no operator found which takes a left-hand operand
<p>Ok so I have read multiple instances of this question on Stack Overflow, but I cannot seem to find an answer that relates to my project.
<a href="http://stackoverflow.com/questions/8936409/error-c2678-binary-no-operator-found-which-takes-a-left-hand-operand">binary-no-operator found which takes left handed operand</a></p>

<p>What I cannot seem to figure out why I can use the equality operator on say 2 ints but not between the two object files that this program is written for.<br>
Here's a snip from the class: </p>

<pre><code>template &lt;class Type&gt;
class stackType: public stackADT&lt;Type&gt;
{
public:
  const stackType&lt;Type&gt;&amp; operator=(const stackType&lt;Type&gt;&amp;); 
  stackType(const stackType&lt;Type&gt;&amp; otherStack); 
  ~stackType(); 
  bool operator== (const stackType&lt;Type&gt;&amp;) const;
private:
  int maxStackSize; //variable to store the maximum stack size
  int stackTop;     //variable to point to the top of the stack
  Type *list;       //pointer to the array that holds the stack elements
};

template&lt;class Type&gt;
bool stackType&lt;Type&gt;::operator==(const stackType&lt;Type &amp; right) const
{ 
  //assuem the stacks have same number of elements
  if(this-&gt;stacKTop != right.stackTop)
    return false;
  //check for eqaulity
  for (int i=0; i&lt;stackTop; i++)
    if (this-&gt;list[i] != right.list[i])
      return false;
  return true;
 }//end operator function
</code></pre>

<p>main program to test:</p>

<pre><code>using namespace std;
int main()
{
  stackType&lt;int&gt; s1(12);
  stackType&lt;int&gt;s2(15);    
  for (int i=3; i&lt;30; i+=3)
  {
    s1.push(i);
    s2.push(i);
  }//end for
  if(s1 == s2)
    cout&lt;&lt;"both stacks are equal"&lt;&lt;endl;
  else
    cout&lt;&lt;"stacks are not equal"&lt;&lt;endl;
}
</code></pre>

<p>I am using visual studio 2012 and I am just confused and burned out.  I have tried changing the declaration I have added the keyword const to the declarations, I added more arguments, nothing.  I tested the equality operator on two ints and it compiled and worked.  Again I want to learn from my mess up so all input is welcome.</p>
