title: expected ';' after expression
body: <p>I'm trying to port a project from Windows to Mac. I'm having troubles compiling the class CFactory. I'll try to illustrate the problem. </p>
  
  <p>Here's what I have on my <strong>Factory.h</strong></p>
  
  <pre><code>namespace BaseSubsystems
  {
      template &lt;class T&gt;
      class CFactory
      {
      protected:
          typedef T (*FunctionPointer)();
          typedef std::pair&lt;std::string,FunctionPointer&gt; TStringFunctionPointerPair;
          typedef std::map&lt;std::string,FunctionPointer&gt; TFunctionPointerMap;
          TFunctionPointerMap _table;
      public:
          CFactory () {}
          virtual ~CFactory();
      }; // class CFactory
  
      template &lt;class T&gt; 
      inline CFactory&lt;T&gt;::~CFactory()
      {
          TFunctionPointerMap::const_iterator it = _table.begin();
          TFunctionPointerMap::const_iterator it2;
  
          while( it != _table.end() )
          {
              it2 = it;
              it++;
              _table.erase(it2);
          }
  
      } // ~CFactory
  }
  </code></pre>
  
  <p>When I'm trying to compile, the compiler complains: </p>
  
  <pre><code>Factory.h:95:44: error: expected ';' after expression [1]
           TFunctionPointerMap::const_iterator it = _table.begin();
                                              ^
                                              ;
  </code></pre>
  
  <p>Why is this happening? That am I missing?</p>
  
  <p>NOTE: This project compiles properly on MSVC. </p>
  
  <p>Thanks. </p>