Piszę unikatowy generator identyfikatorów, który ma różne strategie generowania identyfikatorów, które są unikalne w ciągu dnia, tygodnia lub miesiąca. Nie chcę tworzyć hierarchii klas z mechanizmem funkcji wirtualnejCzy warto szablonować w oparciu o wyliczenia?
Czy robi się coś takiego jak poniższy fragment kodu, dobry pomysł? Jakieś sugestie?
enum Duration { Day, Week, Month };
template <Duration d>
class IDGenerator
{
generateId();
}
To zadziała doskonale, odpowiednie klauzule "if" zostaną w tym przypadku całkowicie zoptymalizowane. Zauważ, że nie jest w 100% tak potężny, jak specjalizacja szablonu klasy na typie (chociaż wielu/większość ludzi woli tutaj "mniej mocy"). – Damon
Zdefiniuj "dobry pomysł". –