---
# System prepended metadata

title: template
tags: [Code]

---

---
tags: Code
---

# template

泛型，簡單來說就是可以自己判斷型別的東西。

## 基礎語法
```cpp=
template<typename T> 
template<class T>
```


## 實際運用


### debug程式

在`debug`的時候要一直`cout`而且最後又要刪掉是不是很麻煩呢?
尤其是在程式碼很多的時候，找不到`cout`在哪裡。
這邊提供一個簡單的`debug`程式碼

```cpp=
void _debug() {cerr << '\n';}
template<typename A, typename ...B>
void _debug(A a, B ...b) {cerr << a << ','; _debug(b...);}
#define de(...) cerr << '(' << (#__VA_ARGS__) << ") : ", _debug(__VA_ARGS__);
```