SFINAE on assembly? : <p>Is it possible to use metaprogramming tricks to allow SFINAE on assembly blocks? For example to detect if an instruction like "CPUID" is available on a processor: (this is not valid code, but illustrates what I would like to achieve)</p>

<pre><code>// This should work if `CPUID` is a valid instruction on the target architecture
template &lt;
  class... T,
  class = decltype(sizeof...(T), asm volatile("CPUID":::)
&gt;
bool f(T...) {
    return true;
}

// This should fail because `BLAH` is not an instruction
template &lt;
  class... T,
  class = decltype(sizeof...(T), asm volatile("BLAH":::)
&gt;
bool f(T...) {
    return true;
}
</code></pre>
