C++ 模板<&燃气轮机;(在<;>;中没有任何T类)是指?
我正在读stl_construct.h中的一些源代码, 在大多数情况下,它都有某种意义 我看到一些行只有“C++ 模板<&燃气轮机;(在<;>;中没有任何T类)是指?,c++,templates,C++,Templates,我正在读stl_construct.h中的一些源代码, 在大多数情况下,它都有某种意义 我看到一些行只有“模板…””。 这是什么?这意味着接下来是一个问题。我猜,我完全误解了问题,回答了一些没有被问到的问题。 因此,我在这里回答被问到的问题: 它是一个带有空模板参数列表的。 当您使用一组给定的模板参数实例化模板时,编译器将基于这些模板参数生成一个新定义。但是有一种工具可以覆盖定义生成的这种行为。我们可以指定编译器应该用于给定模板参数集的定义,而不是编译器生成定义。这称为显式专门化 templat
模板…”
”。
这是什么?这意味着接下来是一个问题。我猜,我完全误解了问题,回答了一些没有被问到的问题。
因此,我在这里回答被问到的问题: 它是一个带有空模板参数列表的。 当您使用一组给定的模板参数实例化模板时,编译器将基于这些模板参数生成一个新定义。但是有一种工具可以覆盖定义生成的这种行为。我们可以指定编译器应该用于给定模板参数集的定义,而不是编译器生成定义。这称为显式专门化
template
前缀表示以下模板声明不采用模板参数
显式专门化可应用于:
- 函数或类模板
- 类模板的成员函数
- 类模板的静态数据成员
- 类模板的成员类
- 类模板的成员函数模板&
- 类模板的成员类模板
中恰好没有留下任何参数
例如:
template<class A, class B> // base template
struct Something
{
// do something here
};
template<class A> // specialize for B = int
struct Something<A, int>
{
// do something different here
};
template<> // specialize both parameters
struct Something<double, int>
{
// do something here too
};
模板//基本模板
构造某物
{
//在这里做点什么
};
模板//专用于B=int
构造某物
{
//在这里做些不同的事情
};
模板//专门化这两个参数
构造某物
{
//在这里也做点什么
};