sizeof(T) being interpreted as two arguments : <pre><code>error: no matching function for call to 'operator new(sizetype, long long unsigned int, long long unsigned int*&amp;)'
 new(sizeof(T), tmp) T{std::move(buffer[i])};
</code></pre>

<p>I'm getting this error which leads me to believe that <code>sizeof(T)</code> is being interpreted as <code>sizetype, T</code>. Why is this happening and how do I fix it? </p>

<p><code>tmp</code> is of the type <code>T*</code>, the new operator is being defined by <code>#include &lt;new&gt;</code>, and I don't define the comma operator anywhere. When I googled this error the only similar occurrence I could find was debug mode redefining the new operator, but that isn't the case for this.</p>
