泛型constexpr函数 的使用
时间: 2023-10-24 16:46:16 浏览: 149
泛型的使用
4星 · 用户满意度95%
泛型constexpr函数是C++14引入的一个特性,它允许在constexpr函数中使用模板参数,从而实现更通用的编译时计算。
下面是一个示例代码,展示了如何使用泛型constexpr函数:
```cpp
#include <iostream>
template <typename T>
constexpr T square(T x) {
return x * x;
}
int main() {
constexpr int result1 = square<int>(5);
std::cout << "Square of 5: " << result1 << std::endl;
constexpr double result2 = square<double>(3.14);
std::cout << "Square of 3.14: " << result2 << std::endl;
return 0;
}
```
在这个例子中,我们定义了一个泛型constexpr函数`square`,它接受一个参数`x`并返回其平方。在`main`函数中,我们通过`square<int>(5)`和`square<double>(3.14)`分别计算了整数5和浮点数3.14的平方,并将结果打印出来。
需要注意的是,泛型constexpr函数的模板参数必须是可求值的常量表达式,这意味着在编译时就能确定其值。在上面的示例中,我们使用了`constexpr`关键字来声明`result1`和`result2`,告诉编译器这些值可以在编译时计算出来。
通过使用泛型constexpr函数,我们可以在编译时进行更多的计算,从而减少运行时开销并提高性能。
阅读全文