我正在编写一个独特的ID生成器,它具有不同的生成Id的策略,这些策略在一天,一周或一个月内是唯一的.我不想用虚函数机制创建类的层次结构
正在做类似下面的代码片段,这是一个好主意吗?有什么建议?
enum Duration { Day, Week, Month };
template <Duration d>
class IDGenerator
{
generateId();
}
Run Code Online (Sandbox Code Playgroud) 我有一个要求,如果作为模板参数之一传递的整数大于某个值,我应该使用特定的类.否则,我应该得到编译时错误...
它类似于以下内容:
enum Time { Day, Week, Month };
template<Time t, int length>
class Timer
{
}
Run Code Online (Sandbox Code Playgroud)
现在,我必须以Timer这样的方式限制实例化-
Timer<Day,8>,Timer<Day,9>等应该工作,但是length当用于不能小于8 Day.
同样,使用length时不能小于Week等等......
有人可以帮我解决一下如何在编译时实现这一目标吗?