【发布时间】:2012-09-02 03:44:04
【问题描述】:
是否可以使用具有以下签名的元函数计算整数的平方根:
template<unsigned int N> inline double sqrt();
(或者可能使用 constexpr 关键字,我不知道什么是最好的)。
这样,sqrt<2>() 将在编译时被 1.414... 替换。
这样的功能最好的实现是什么?
【问题讨论】:
-
我搜索了“模板元编程 sqrt”并找到了这个informit.com/articles/article.aspx?p=30667&seqNum=3
-
我已经看到了,但这仅适用于整数 sqrt 的整数部分。我想在编译时得到浮点结果。
-
因为
sqrt是一个标准函数,所以我会使用sqrtt。 -
你能在编译时对浮点数做任何有意义的操作吗?
-
my metaprogramming library 包含一个平方根函数,该函数使用牛顿根查找方法实现。 (查看 README 示例)。
标签: c++ templates metaprogramming sqrt