Is `using Base::operator T` allowed where `T` is a template type parameter?
<p>Consider this example:</p>

<pre><code>struct B { operator int(); };

template&lt;class T&gt;
struct X:B
{
    using B::operator T;
};
</code></pre>

<p><a href="http://coliru.stacked-crooked.com/a/2602ae50955f3977">GCC</a> accepts the code, while <a href="http://coliru.stacked-crooked.com/a/39685d409341de73">Clang</a> and MSVC rejects it.
Which is correct?</p>

<p>Note that if the base type is dependent, all the compilers accept the code:</p>

<pre><code>template&lt;class T&gt;
struct B { operator T(); };

template&lt;class T&gt;
struct X:B&lt;T&gt;
{
    using B&lt;T&gt;::operator T;
};
</code></pre>