在编译器模板元求平方根sqrt的方法
时间: 2023-08-14 07:42:01 浏览: 142
在JavaScript中使用开平方根的sqrt()方法
在编译器中使用模板元求平方根的方法可以使用二分查找算法,例如:
```c++
template <unsigned int N, unsigned int L = 0, unsigned int R = N>
struct Sqrt {
static constexpr unsigned int mid = (L + R + 1) / 2;
static constexpr unsigned int value = (mid * mid <= N) ? Sqrt<N, mid, R>::value : Sqrt<N, L, mid - 1>::value;
};
template <unsigned int N, unsigned int L>
struct Sqrt<N, L, L> {
static constexpr unsigned int value = L;
};
```
这个模板可以通过 `Sqrt<N>::value` 来得到 N 的平方根的整数部分。此外,如果需要求浮点数的平方根,可以使用 `std::sqrt()` 函数。
阅读全文