c++模板 表达式形参
时间: 2024-01-05 07:22:12 浏览: 70
matplotlib-3.6.3-cp39-cp39-linux_armv7l.whl
C++模板中的表达式形参是指模板中的参数可以是一个表达式,而不仅仅是一个类型或值。例如,以下代码中的模板函数 `max` 接受两个表达式形参 `a` 和 `b`,并返回它们中较大的那个值:
```cpp
template<typename T>
T max(T a, T b)
{
return a > b ? a : b;
}
```
调用该函数时,可以传递任意类型的参数,只要它们支持 `>` 运算符:
```cpp
int x = max(3, 5); // x = 5
double y = max(2.5, 1.8); // y = 2.5
```
另外,表达式形参也可以用于定义模板类的类型参数。例如,以下代码中定义了一个模板类 `Array`,它接受两个类型参数 `T` 和 `size`,其中 `size` 是一个表达式形参:
```cpp
template<typename T, int size>
class Array
{
public:
T data[size];
// ...
};
```
这个模板类可以用于定义固定大小的数组:
```cpp
Array<int, 5> a; // 定义一个包含5个int类型元素的数组
```
阅读全文