2015-11-05 113 views
1

我该如何构造一个自引用结构?例如。一棵二叉树? 我认为我应该这样做像下面,但它抛出Segmentation fault: 11二叉树结构(自引用结构)

import std.typecons; 

struct Node { 
    int value; 
    NullableRef!Node left, right; 
} 

void main() { 
    Node n; 
} 
+1

这是一个编译器错误。平分... –

回答

4

我应该如何构建一个自引用的结构?例如。一棵二叉树?我认为我应该这样做像下面,但它抛出Segmentation fault: 11

编译期间分割故障指示编译器的bug。在这种情况下,它看起来像是在2.068中引入的回归。我会平分并报告它,所以它应该在下一个版本中修复。在此之前,您可以降级到DMD 2.067或更低版​​本,而不会出现此错误。

如果NullableRef使用不是必要的,你可以简单地使用纯指针现在:

struct Node { 
    int value; 
    Node* left, right; 
} 

void main() { 
    Node n; 
} 
+1

提交:https://issues.dlang.org/show_bug.cgi?id = 15292 –