相关疑难解决方法(0)

std ::比率在编译时的std :: ratio的功率?

从数学,算法和元编程递归的角度来看,我有一个具有挑战性的问题.请考虑以下声明:

template<class R1, class R2>
using ratio_power = /* to be defined */;
Run Code Online (Sandbox Code Playgroud)

基于std::ratio类似操作的例子std::ratio_add.给定,两个std::ratio R1R2此操作应该计算R1^R2if和only if R1^R2是否为有理数.如果它是不合理的,那么实现应该失败,就像当一个人尝试将两个非常大的比率相乘并且编译器说存在整数溢出时.

三个问题:

  1. 您是否认为这可以在不扩大编译时间的情况下实现?
  2. 使用什么算法?
  3. 如何实现这个操作?

c++ algorithm math metaprogramming c++11

7
推荐指数
2
解决办法
940
查看次数

平方根函数?

是否可以使用具有以下签名的元函数计算整数的平方根:

template<unsigned int N> inline double sqrt();
Run Code Online (Sandbox Code Playgroud)

(或者可能使用constexpr关键字,我不知道什么是最好的).有了它,sqrt<2>()1.414...在编译时替换.

什么是这种功能的最佳实现?

c++ templates metaprogramming sqrt

6
推荐指数
2
解决办法
1594
查看次数

标签 统计

c++ ×2

metaprogramming ×2

algorithm ×1

c++11 ×1

math ×1

sqrt ×1

templates ×1