- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
class Node<T> {
v: T;
k: string;
next: Node<T>;
}
function main()
{
let n = new Node<number>()
n.next = n
n.k = "Hello";
n.v = 10.0;
print("done.");
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
class Node<T> {
v: T;
k: string;
next: Node<T>;
}
function main()
{
let n = new Node<number>()
n.next = n
n.k = "Hello";
n.v = 10.0;
print("done.");
}
Вы не поверите как сложно сделать простые вещи в LLVM. встречаем рекурсивные типы :)
ASD__77 # 0
j123123 # 0 ⇈
guest # 0 ⇈
ASD__77 # 0 ⇈
guest # 0 ⇈
ASD__77 # 0 ⇈
bormand # 0
ASD__77 # 0 ⇈
guest # 0 ⇈
Во J123123 охуеет ))
HoBorogHuu_nemyx # 0 ⇈
ASD__77 # 0 ⇈
Fike # 0 ⇈
guest # 0 ⇈
GC вообще говно и не нужно
ASD__77 # 0 ⇈
guest # 0 ⇈
Внедри пожалуйста RC типа эппловского ARC или типа С++ного смарт поинтера вместо GC.
Спасибо.
bormand # 0 ⇈
CHayT # 0 ⇈
Худшее из двух миров, ей-богу. И оверхед, и течки.
bormand # 0 ⇈
З.Ы. Интересно, можно ли "аккуратно юзать" заэнфорсить на уровне типов? Иммутабельности ссылок в принципе хватает для защиты от колец. Но может что-то более тонкое можно?
guest # 0
ASD__77 # 0 ⇈
class Node<T> {
v: T;
k: string;
next: Node<T> | undefined | null;
}
guest # 0 ⇈
ASD__77 # 0 ⇈
j123123 # 0 ⇈
Почему вообще так все против NULL? Отличный хак же
[email protected] # 0 ⇈
(*(void(*)())NULL)();
?
bormand # 0 ⇈
Надо ещё одну индирекцию. Ну и стек потом как-то сбросить.
Так что проще документированным способом ребутнуть.
guest # 0 ⇈
HoBorogHuu_nemyx # 0 ⇈
bormand # 0 ⇈
Именно поэтому я за lidt.
HoBorogHuu_nemyx # 0 ⇈
bormand # 0 ⇈
HoBorogHuu_nemyx # 0 ⇈
Я просто вспомнил, как «Нидлесс» перемешал и взболтал слова «лямбда», «Lamoda», «блямба» и ещё какие-то.