もちろん、等しい辺を持つあらゆる形状に対応する汎用的な関数にすることもできる：
```cpp
template <typename T>
T calcPerimeter(T sideLength)
{
    return 4 * sideLength;
}
```
で呼び出すことができる：
```cpp
calcPerimeter<float>(5.0f); // Perimeter of square with side length 5
calcPerimeter<int>(10);    // Perimeter of square with side length 10
```
このテンプレートにより、この関数はどのようなT型でも動作し、辺の長さに4を掛けることで周囲長を計算することができる。
Sure, we can make it a generic function that works for any shape with equal sides:
```cpp
template <typename T>
T calcPerimeter(T sideLength)
{
    return 4 * sideLength;
}
```
Then you can call it with:
```cpp
calcPerimeter<float>(5.0f); // Perimeter of square with side length 5
calcPerimeter<int>(10);    // Perimeter of square with side length 10
```
The template allows the function to work with any type T, and it will calculate the perimeter by multiplying the side length by 4.