Bu kesinlikle önemsiz bir sorudur, ancak nasıl yapılacağını anlayamadım.Şablon parametresi ayrımına bağlı olarak farklı işlevler yürütme
Şablon işlevim var, template <unsigned int N> void my_function()
deyin. Şimdi, my_function
için iki farklı uygulama var, ilk N
, 100, diğerinden daha büyükse N
bundan daha küçükse, kullanılmalıdır.
template <unsigned int N, typename = enable_if <N >= 100> :: type> my_function()
{
// First implementation
}
template <unsigned int N, typename = enable_if <N < 100> :: type> my_function()
{
// Second implementation
}
Ama bu aynı fonksiyonu iki kere ilan ediyor:
böyle SFINAE kullanmaya çalıştı. Sonratemplate <unsigned int N, bool = (N >= 100)> my_function();
böyle bir şey yaptığını Ve sonra boole iki farklı değerlere sahip iki işlevi uygulayan çalıştı. Başarı yok, çünkü kısmi bir uzmanlık.
Sonra, struct parametresi olarak N
sarmayı denedim ve işlev çağrısı içinde boole, ancak sınıfın özelleştirilmesinden önce bir üye işlevi uzmanlaşıyor, bu da yapılamıyor.
Bunu yapmanın makul bir yolu var mı?
Bunu beğendim! Bir dahaki sefere kullanacağım, teşekkürler! –