以下是代码:
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
是什么。我知道模板功能的含义是什么。这是模板结构还是类似的东西?
答案 0 :(得分:1)
想知道,此模板结构别名是什么。我知道模板功能的含义是什么。这是模板结构还是类似的东西?
就是这样。
具体地说,该行是一个前向声明,允许您在实际定义结构中的内容之前在函数中使用模板结构。
以下几行:
<typename From, typename Tag> struct Alias final { ...... }
实际上定义了模板结构中的内容。
模板结构在某种意义上类似于模板函数,因为编译器在需要时会生成结构的特定情况。像函数一样,模板结构充当编译器的蓝图,以便编译器在需要时从该蓝图生成类。