什么是“模板<typename From,typename标签>结构别名”;在C ++中?

时间:2019-11-19 15:02:22

标签: c++

以下是代码:

namespace o
{

template <typename From, typename Tag> struct Alias;
template <typename From, typename Tag>
inline std::ostream &operator<<(std::ostream &stream, const Alias<From, Tag> &inst);

template <typename From, typename Tag> struct Alias final
{ ...... } 
}

我想知道template <typename From, typename Tag> struct Alias是什么。我知道模板功能的含义是什么。这是模板结构还是类似的东西?

1 个答案:

答案 0 :(得分:1)

  

想知道,此模板结构别名是什么。我知道模板功能的含义是什么。这是模板结构还是类似的东西?

就是这样。

具体地说,该行是一个前向声明,允许您在实际定义结构中的内容之前在函数中使用模板结构。

以下几行:

<typename From, typename Tag> struct Alias final { ...... }

实际上定义了模板结构中的内容。

模板结构在某种意义上类似于模板函数,因为编译器在需要时会生成结构的特定情况。像函数一样,模板结构充当编译器的蓝图,以便编译器在需要时从该蓝图生成类。