template and constexpr