我知道typedef
的使用情况,但我不明白何时以及如何使用this_type
?
template<typename T>
class Foo
{
public:
typedef Foo<T> this_type;
// ...
};
其用法或链接的示例也非常有用。
答案 0 :(得分:1)
它有一个非常狭窄的用例,可能只是为了清晰和一致的代码库; this_type
可能是代码中的Foo<T>
更好的描述,否则可能缺少上下文(无论出于何种原因)。因此,它看起来更像个人或公司风格,超过任何特定的技术要求。值得一提的是,名称Foo
已经适用。
另一个案例可能是Foo<T>
与某些Foo<U>
之间的区别 - 但同样,使用也会受到限制(例如转换构造函数)。