c++ - 自身内部模板化类的 Typedef

标签 c++ templates typedef

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

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

它的用法示例或链接也会非常有帮助。

最佳答案

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

另一种情况可能是关于Foo<T>之间的区分要清楚还有一些Foo<U> - 但同样,使用将受到限制(例如转换构造函数)。

关于c++ - 自身内部模板化类的 Typedef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38718087/

相关文章:

linux - 指向结构中包含的结构的指针

c++ - 如何在 C++ 中对任何函数进行 typedef?

c - 为什么 Objective-C Boolean 数据类型定义为 signed char?

用于呈现 ODF 文档的 C++ 库?

c++ - 如果我向 12 字节缓冲区写入少于 12 个字节会发生什么?

java - Freemarker 模板异常

C++ 元编程 doxygen 文档

c++ - 使 QDialog 只读,但仍然可以选择文本

c++ - void_t 特化为什么主模板必须具有默认值 = void?

c++ - 教Google-Test如何打印特征矩阵