我正在寫一個獨特的ID生成器,它有不同的策略來生成一天,一週或一個月內唯一的ID。 我不想創建具有虛擬功能機制的類的層次結構基於枚舉模板是一個好主意嗎?
正在做類似下面的代碼片段,一個好主意? 有什麼建議嗎?
enum Duration { Day, Week, Month };
template <Duration d>
class IDGenerator
{
generateId();
}
我正在寫一個獨特的ID生成器,它有不同的策略來生成一天,一週或一個月內唯一的ID。 我不想創建具有虛擬功能機制的類的層次結構基於枚舉模板是一個好主意嗎?
正在做類似下面的代碼片段,一個好主意? 有什麼建議嗎?
enum Duration { Day, Week, Month };
template <Duration d>
class IDGenerator
{
generateId();
}
是的,它可以接受的,將工作不僅僅是文件如果編譯時多態性是足以讓你 - 您將節省虛擬呼叫,這將允許更好的編譯器coptimizations。
這將工作得很好,在這種情況下,各個「if」子句將完全優化。請注意,它不像專門針對類型的類模板那樣強大(儘管很多/大多數人會喜歡這裏的「較少的力量」)。 – Damon
定義「好主意」。 –