2015-11-05 2 views
1

Как создать структуру для саморегуляции? Например. бинарное дерево? я предполагал, что я должен сделать это, как показано ниже, но он бросает Segmentation fault: 11Структуры для двоичного дерева (саморефлексивные столбцы)

import std.typecons; 

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

void main() { 
    Node n; 
} 
+1

Это ошибка компилятора. Bisecting ... –

ответ

4

Как я должен конструирует автореферентное-структуру? Например. бинарное дерево? Я предположил, что должен сделать это, как показано ниже, но он выбрасывает Segmentation fault: 11

Ошибка сегментации во время компиляции указывает на ошибку компилятора. В этом случае, похоже, это регрессия, введенная в 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 –