2015-04-20 2 views
1

Это должно быть глупо, но я не понимаю смысла, когда говорят, что «типы в LLVM уникальны» (см. this tutorial, раздел 3.4). Не могли бы вы объяснить мне, что такое так называемый «уникальный тип» («Типы LLVM уникальны» должны быть легко соблюдены, как только «однозначный тип» понятен.)Что они говорят о том, когда говорят о «уникальных типах» и «типах в LLVM, являются уникальными»?

+0

Можете ли вы указать, где говорится: «Типы в LLVM уникальны»? – NathanOliver

+0

@NathanOliver. Благодарю. Ссылка добавлена. – zell

ответ

5

Это означает, что два типа, которые имеют одинаковый контент на самом деле одного и того же типа. Вот почему у вас нет создать новый тип, если вы хотите «двойного (двойного, двойного)» типа, вы вместо этого получите существующий «двойной (двойной, двойной)» тип - если нет, это будет созданный для вас, если он уже есть, он будет возвращен.

Это распространенный случай в LLVM, за исключением того, что identified structural types in LLVM are uniqued by name and not structure. «Идентифицированный структурный тип» означает тип структуры, который имеет ассоциированное имя.

В целом, это связано с концепцией nominal types против structural types.

+0

Я вижу. Только одноэлементный узор. Благодарю. – zell

+0

@zell это не совсем одноэлементный (это для контекста), и он не универсален для всех типов (см. Мою заметку об идентифицированном структурном типе), но я согласен, что это определенно в духе использования синглетов, я должен был, вероятно, использовать это слово: -) Я рад, что ты все равно понял. – Oak

Смежные вопросы