#include #include #include #include using namespace std; template T pNorm(const array& v) { T x = 0; for (const T& y: v) x += pow(y, p); return pow(x, static_cast(1) / p); } template<> double pNorm(const array& v) { return sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]); } int main() { array a1{1, 2, 3}; cout << pNorm(a1) << endl; array a2{5, 4, 3, 2, 1}; cout << pNorm(a2) << endl; }