相关疑难解决方法(0)

在编译时计算小整数的阶乘

我刚刚(再次)实现了一个递归模板,用于在编译时计算整数的阶乘(谁曾想过有一天我真的需要它!).尽管如此,我还是去找Boost寻找答案,而不是自己动手.但是,特殊数学中的阶乘函数特别禁止它使用整数类型,所以我只写了自己的.

仍然,我应该使用Boost中的另一个功能吗?我应该将我的整数转换为double并使用该boost::factorial函数吗?计算是在编译时执行的吗?

c++ math boost template-meta-programming constexpr

6
推荐指数
1
解决办法
906
查看次数

功能模板部分特化的解决方法?

考虑以下关于积分pow的元函数(这只是一个例子):

class Meta
{
    template<int N, typename T> static constexpr T ipow(T x)
    {
        return (N > 0) ? (x*ipow<N-1>(x)) 
                       : ((N < 0) ? (static_cast<T>(1)/ipow<N>(x)) 
                                  : (1))
    }
};
Run Code Online (Sandbox Code Playgroud)

如何为这样的函数写停止条件?

c++ templates metaprogramming partial-specialization c++11

0
推荐指数
2
解决办法
1485
查看次数