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