title: Explicit specialization after instantiation error
body: <p>I have a template class name Vec3.</p>
  
  <p>this is the code:</p>
  
  <pre><code>Vec3.h:
  
  template&lt; typename T &gt;
  class Vec3_T
  {
  
  public:
  
      //! internal struct
      union
      {
          struct
          {
              T   x, y, z;
          };
          T _m[3];
      };
  
      static const Vec3_T&lt;T&gt; ZERO;
  };
  
  
  Vec3.cpp
  
  template&lt;&gt; const Vec3_T&lt;float&gt; Vec3_T&lt;float&gt;::ZERO( 0.f, 0.f, 0.f );
  </code></pre>
  
  <p>When I use XCode5 to compile it, give me a error: Explicit specialization of 'ZERO' after instantiation. but it can be compiled succeed on vs2008. so, how to fix it?</p>