SFINAE на сборке?
Можно ли использовать тэки метапрограммирования, чтобы позволить SFINAE на сборных блоках? Например, чтобы определить, доступна ли на процессоре инструкция типа "CPUID": (это недопустимый код, но иллюстрирует то, что я хотел бы достичь)
// This should work if `CPUID` is a valid instruction on the target architecture
template <
class... T,
class = decltype(sizeof...(T), asm volatile("CPUID":::)
>
bool f(T...) {
return true;
}
// This should fail because `BLAH` is not an instruction
template <
class... T,
class = decltype(sizeof...(T), asm volatile("BLAH":::)
>
bool f(T...) {
return true;
}