<p>As far as I can tell perusing the standard, MSVC is in the wrong here.  Here is a more minimal example that should produce the problem:</p>

<pre><code>template&lt;typename A, typename B = double&gt;
class C
{

};

template&lt;typename A&gt;
using D = C&lt;A&gt;;

int main()
{
  D&lt;float&gt; d;
}
</code></pre>

<p>That compiles fine with gcc 4.9.2 and clang 3.5.0.  Does that compile with MSVC?</p>

<p>If not, I would suggest that maybe a bug should be filed with the Microsoft compiler team.</p>

<p>In the mean time, the workaround you suggest here is a bit ugly, unfortunately, but should still work with gcc and clang, so if stereomatchingkiss can also reproduce the error (maybe with the snippet I posted too), we can incorporate your fix.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br>Reply to this email directly or <a href="https://github.com/mlpack/mlpack/issues/476#issuecomment-158937726">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFAYYYeJrMi_XDenafG2yRUdZtteLks5pIxG0gaJpZM4GmBm0.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/mlpack/mlpack/issues/476#issuecomment-158937726"></link>
  <meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>