也许是一个矛盾的问题:根据定义,ratio<,>是编译时常量.
但是,我想构建具有不同比率的持续时间,可以由我的方法的调用者指定.我猜我应该使用除比率和/或持续时间以外的东西,然后,但是什么?
我想拥有一个可以在运行时设置的类成员,我希望它的类型比为<,>.在代码中的某个时刻,这个成员被设置/分配,它将被分配一个恒定的比率,但在我的班级,我不想指定该比率应该是什么.
解决方法
你说你需要一个std :: ratio,“可以由调用者指定”.有三种不同的选择:
>调用者希望在编译期间设置std :: ratio模板参数.这是微不足道的,只需设置参数,例如使用quarter = std :: ratio< 1,4>.
>调用者希望在运行时设置std :: ratio模板参数.根据定义,这是不可能的,std :: ratio是编译时常量.您将不得不在运行时实现自己的类计算比率或使用某种类型的库(我不知道任何建议,欢迎提出建议!).
>如果你只是想扩展你的std :: duration(你似乎使用你的std :: ratio),只需要multiply it with a number.