usingnamespace std::literals;structmatrix_constants{template<classT>using pauli = hermitian_matrix<T,2>;template<classT>staticconstexpr pauli<T> sigmaX ={{0,1},{1,0}};};// 当然也可以在类外定义structlimits{template<typenameT>staticconst T min;};template<typenameT>const T limits::min ={};
使用
指明类型
std::cout << pi<int>;
变量模板可以有默认模板实参
template<classT=double>constexpr T pi =T(3.1415926);
std::cout << pi<>;
std::cout << pi<float>;
变量模板可以用非类型参数进行参数化
template<int N>
std::array<int, N> arr{};
变量模板可以通过处于命名空间作用域的模板引入
template<classT>
T circular_area(T r){return pi<T>* r * r;}