c++ - 在模板类中声明模板成员变量在 Xcode 中不起作用

标签 c++ xcode templates

我只是想创建一个简单的 Node 模板类,但出于某种原因,Xcode C++ 编译器不喜欢 T 值。我收到的错误是 Field 的类型“T”不完整。

template < class T>
class Node
{
public:
    T value;
    Node<T> next;
};

最佳答案

Node<T> next;

定义next作为 Node 的实例,但后者尚未完全定义,因此编译器不知道如何构造内部 Node . Node需要是一个指针

Node<T>* next; // or, better, a smart pointer

这样一来,编译器就不需要“知道”Node<T>的完整定义了。当遇到 Node<T>* next; 行时.它只需要存储一个指向 Node<T> 的指针。 ,与任何其他指针一样,(在大多数体系结构上)以 4 或 8 个字节表示。由于这个原因,编译器不需要知道 Node<T> 的完整定义。 .

关于c++ - 在模板类中声明模板成员变量在 Xcode 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33005672/

相关文章:

c++ - 为什么 clang 无法使用默认的 integer_sequence 实例化嵌套的可变参数模板?

c++ - 屏幕坐标到世界坐标

ios - 从 XCode 运行时找不到钥匙串(keychain)值

c# - 需要帮助来查找我正在尝试做的具体事情的名称

Xcode:malloc_error_break 上的自动(永久)断点?

c++ - ffmpeg 2.8.x 在 mac os x 10.10 上交叉编译错误

php - 为通过 Apache 托管的网站创建一个简单的模板

c++ - 模板 : How to select smallest int type which holds n bits?

c++ - 如何正确处理鼠标事件处理程序中的不同情况?

c++ - 从 std::function 继承构造函数时为 "function returning a function"