模板化类的typedef本身

时间:2016-08-02 10:35:10

标签: c++ templates typedef

我知道typedef的使用情况,但我不明白何时以及如何使用this_type

template<typename T>
class Foo
{
   public:
      typedef Foo<T> this_type;
      // ...
};

其用法或链接的示例也非常有用。

1 个答案:

答案 0 :(得分:1)

它有一个非常狭窄的用例,可能只是为了清晰和一致的代码库; this_type可能是代码中的Foo<T>更好的描述,否则可能缺少上下文(无论出于何种原因)。因此,它看起来更像个人或公司风格,超过任何特定的技术要求。值得一提的是,名称Foo已经适用。

另一个案例可能是Foo<T>与某些Foo<U>之间的区别 - 但同样,使用也会受到限制(例如转换构造函数)。