<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<typename A, typename B = double>
class C
{
};
template<typename A>
using D = C<A>;
int main()
{
D<float> 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;">—<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>