
Комментарии 6
В библиотеке A определен тип SomeType<T>, потом в библиотеках B и C этот тип используется с параметром int. Потом эти две библиотеки импортируются в нашем приложении. При кодогенерации и в библиотеке B, и в библиотеке C создаются свои типы SomeType<int>, для каждой библиотеки они свои.
Почему ты не сделаешь, чтобы SomeType<int> не был в A, где определён его обобщённый? Просто используется в B и C — как-то же ты его импортировал ведь. Вообще, можно многое сказать, но это зацепилось сейчас (я уже сутки эту статью читаю, ха — уже до середины дошёл), да и я понял, что это пробный шар без опыта был ;)
Спасибо за комментарий, но не совсем понял вопроса.
В "А" у меня определен обобщенный тип SomeType<T>, а потом уже в других библиотеках/приложениях, если необходим конкретный какой-то тип, например SomeType<int> или SomeType<string>, то в этих же библиотеках и создаются конкретные реализации SomeType<T>.
Если же вопрос стоит "Почему сразу не определить SomeType<int> в "А"?", то ответ простой - я заранее не могу знать, какие конкретные реализации класса могут быть нужны.
Язык нативно компилируемый (забыл указать это в статье), без JIT, поэтому вот так вот :)
Нет, вопрос в том, почему, когда в других библиотеках определяются конкретные реализации, их не определять в исходной библиотеке, где был определён обобщённый тип... Понимаете?
Хоть бы кто то написал статью : "мой компилятор просчитывает адреса и смещения такого пути mystruct.varA.myarr[34,24,7].poitn.B[63].time" таим образом:.(Образ) ....... А участок кода mystruct.varA.myarr[a,b,c].poitn.B[d].time динамически просчитвается в цикле так : "...(Образ)....."
А самое главное, когда куча переменных участвует в вычислениях, а у тебя только 16 регистров ядра, и не все их можно использовать (регистровое давление)
Вот это было бы интересно :)
В компиляторах это самое сложное.
Создание языка программирования дилетантом. Как это?