模板参数

模板的参数有三种类型:类型参数,非类型参数和模板类型参数。

类型参数

最基础的参数表示

template<typename T1>

非类型参数

非类型参数是指内置类型参数。非类型模板参数为模板预定义一些常量。在模板实例化时,要求实参必须是常量,即确切的数据值。非类型参数只能是整型,字符型或枚举,指针,引用类型。非类型参数在所有实例中都具有相同的值。

template<int inst>
class __malloc_alloc_template{

};

模板类型参数

所谓模板类型参数,就是该模板参数本身还是模板类型。

template<typename T1, template<typename T1>
                       class Container>
class Widget{
    public:
      Container<T1> container;
};

但是下列情况不属于模板类型参数

template<typename T1, typename Sequence = deque<T1>>
class stack{
  protected:
    Sequence c;
};

属于默认模板参数

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top