#pragma once #include template T pNorm(const std::complex& z); template&) = pNorm> class complex_norm : public std::complex { public: complex_norm(T real_, T imag_); T norm() const; }; template using complex_pnorm = complex_norm>; template T pnorm_bound(std::complex = std::complex{1.0, 1.0});