title: Overload operator += in template class with std::enable_if metafunction
body: <p>I have a string class implemented as a class template like:</p>
  
  <pre><code>template &lt;class T&gt;
  class HGStringBasic
  {
  //...
  public:
  //...
      HGStringBasic&amp; operator += (const T* rhs)
      {
          //...
      }
  
      template &lt;class U, std::enable_if_t&lt;std::is_same&lt;U, char&gt;::value&gt;* = nullptr&gt;
      HGStringBasic&amp; operator += (const U* rhs)
      {
          //...
      }
  //...   
  }
  </code></pre>
  
  <p>The code is C++ 11 standard conform.
  The goal was to implement an overloaded operator += (const char) which is only used, if class T of the template is for instance "wchar_t".</p>
  
  <p>I would like to know, how i can achieve the same result if the compiler don't understand C++11.</p>
  
  <p><strong>UPDATE:</strong>
  Sry i'm new to stackoverlow and i haven't seen, that my code wasn't fully shown in the code block. I have now updated my code sniped so far.
  I have also corrected a mistake within the template argument list from the template function operator += (), TartanLlama you're absolutly right, <code>is_same&lt;T, char&gt;</code> must be <code>is_same&lt;U, char&gt;</code>.</p>