title: Error on std::pair when compiling for mac / linux
body: <p>I have a problem when compiling my code under Mac OS. This function declaration in my header file apparently causes some errors (it does work fine under Windows, though):</p>
  
  <pre><code>#include &lt;string&gt;
  #include &lt;vector&gt;
  #include &lt;map&gt;
  
  #ifdef WIN32
      #include &lt;windows.h&gt;
  #endif
  
  [...]
  
      int setProcessEnvironment(
          const wchar_t * procName,
          const wchar_t * appName = NULL,
          const wchar_t * workingDir = NULL,
          const wchar_t * cmdArgs = NULL,
          const std::vector&lt; std::pair&lt;const wchar_t *, int&gt; &gt; &amp;systemEnvVars = std::vector&lt; std::pair&lt;const wchar_t *, int&gt; &gt;()
      );
  </code></pre>
  
  <p>It looks like the compiler doesn't like the input for my pair - maybe I am missing some includes or what is the problem here?</p>
  
  <p>I also don't fully understand the last line of this error message as my function description actually looks very different to the one in this error...</p>
  
  <p>I am starting to think it may have to do with the default initialization, but what is the difference between the Mac and Windows compiler here?</p>
  
  <pre><code>26: error: expected ‘,’ or ‘...’ before ‘&gt;’ token
  26: error: wrong number of template arguments (1, should be 2)
  /usr/include/c++/4.2.1/bits/stl_pair.h:68: error: provided for ‘template&lt;class _T1, class _T2&gt; struct std::pair’
  26: error: template argument 1 is invalid
  26: error: template argument 2 is invalid
  26: error: default argument missing for parameter 6 of ‘int SysProcManager::setProcessEnvironment(const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const std::vector&lt;std::pair&lt;const wchar_t*, int&gt;, std::allocator&lt;std::pair&lt;const wchar_t*, int&gt; &gt; &gt;&amp;, int)’
  159: error: prototype for ‘int SysProcManager::setProcessEnvironment(const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const std::vector&lt;std::pair&lt;const wchar_t*, int&gt;, std::allocator&lt;std::pair&lt;const wchar_t*, int&gt; &gt; &gt;&amp;)’ does not match any in class ‘SysProcManager’
  26: error: candidates are: int SysProcManager::setProcessEnvironment(const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const std::vector&lt;std::pair&lt;const wchar_t*, int&gt;, std::allocator&lt;std::pair&lt;const wchar_t*, int&gt; &gt; &gt;&amp;, int)
  138: error:                 int SysProcManager::setProcessEnvironment(const wchar_t*, const wchar_t*, const wchar_t*, const wchar_t*, const std::vector&lt;const wchar_t*, std::allocator&lt;const wchar_t*&gt; &gt;&amp;)
  </code></pre>