16
Şablon parametresinin enum sınıfı tipte olduğundan emin olmanın bir yolu var mı?Şablon parametresinin bir enum sınıfı olduğundan emin olun
Biliyorum type_traits
std::is_enum
var, ama enum_classes, sadece enum_classes düzenli enums eşleştirmek istemiyorum. istenilen etkinin
Örnek:
enum class EnumClass {};
enum Enum {};
class Class {};
template <typename T>
void Example()
{
static_assert(/* T is EnumClass */, "`T` must be an enum class");
}
Example<EnumClass>(); // Ok
Example<Enum>(); // Error
Example<Class>(); // Error
Ben yeni standartlar içerir bile, yine de bir çözüm merak olurdu gerçi (herhangi bir yüksek gidemez maalesef C++ 11 ve kullanıyorum).
Mümkün mü?
düzelt ama sadece enum sınıfları örtük olarak dönüştürülebilir olmadığı gerçeği güveniyoruz: Eğer SFINAE kullanmayı tercih ediyorsanız
aynı ile elde edilebilir integrallere mi? Gizli bir dönüşüm operatörü tanımlamak mümkün değil mi? –
@GiladNaaman “Enum sınıfı” ndan bir örtük operatörü nasıl tanımlarsınız? –
Evet, kötüyüm, aslında bir “enum sınıfı” içindeki işleçleri veya işlevleri tanımlayamazsınız. –