Здравствуйте, _nn_, Вы писали:
__>Здравствуйте, Ka3a4oK, Вы писали:
KK>>Будет ли сабж в Nemerle. И насколько трудоемко его реализовать.
__>Это про unsafe ?
__>Ну вот некоторый вещи как fixed можно реализовать макросом.
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, Ka3a4oK, Вы писали:
KK>>А указатели тоже можно?
H>Нет. Но если тебе действительно нужны указатели, видимо пора на C++/CLI переходить.
Они мне нужны сильно локально. Для поддержки старого кода. Можно конечно написать прослойку на C шарп, а потом подключить сборку к коду на Немерле, но это не камельфо.
Здравствуйте, Ka3a4oK, Вы писали:
H>>Нет. Но если тебе действительно нужны указатели, видимо пора на C++/CLI переходить.
KK>Они мне нужны сильно локально. Для поддержки старого кода. Можно конечно написать прослойку на C шарп, а потом подключить сборку к коду на Немерле, но это не камельфо.
Лучше написать ее на C++/CLI.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, Ka3a4oK, Вы писали:
KK>Будет ли сабж в Nemerle. И насколько трудоемко его реализовать.
В языке ансэйфа не будет. В 2.0 планируется сделать более широкие возможности на уровне макросов. Скорее всего ансэйф можно будет получить в C#-коде расположеном в том же проекте.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Ka3a4oK, Вы писали:
KK>>Будет ли сабж в Nemerle. И насколько трудоемко его реализовать.
VD>В языке ансэйфа не будет.
Не будет вообще? Это какая-то принципиальная позиция. Или ансейф будет реализован на макросах?
Здравствуйте, VladD2, Вы писали:
VD>В языке ансэйфа не будет. В 2.0 планируется сделать более широкие возможности на уровне макросов. Скорее всего ансэйф можно будет получить в C#-коде расположеном в том же проекте.
Здравствуйте, BogdanMart, Вы писали:
VD>>Лучше написать ее на C++/CLI.
BM>А чем шарп не нравиться?
Нравится, но не для массивного интеропа. Если пошли указатели, то шарп уже не лучший выбор. В общем, если прокатывает шарп без ансэйфа, то это неплохой выбор. Если нужен ансэф, то C++/CLI (скорее всего) подойдет лучше. А если нужно С++-ный проект к дотрету прикрутить, то C++/CLI лучший выбор.
BM>(С++ управляемый всеровно затачиваеться под архитектуру, а ансейф С# и под 32 и под 64 пашет одинаково)
Это не сравнимые вещи. C++/CLI предастовляет все возможности С/С++, а в С# ансэйф — это весьма ограниченное решение. Плюс при использовании ансэйфа весе преимущества шарпа резко нивелируются.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, BogdanMart, Вы писали:
BM>>(С++ управляемый всеровно затачиваеться под архитектуру, а ансейф С# и под 32 и под 64 пашет одинаково)
VD>Это не сравнимые вещи. C++/CLI предастовляет все возможности С/С++, а в С# ансэйф — это весьма ограниченное решение.
Использовали для ускорения чтения/записи в файл. Ансейф блок позволяет просто прикастовать казатель на масив байтов к другому типу (Мы кастовали к Структу котоый потом пеедавался дальше уже в виде массива), а если бы парсить это все через FileStream.ReadInt, ReadDouble то офигели бы и во время написания и не особо быстро.
Причем проект может запускаться как на х64 так и на х86 а в случаи использования Managed C++ пришлось бы создавть два проекта, с одними и теми же фалами и линнковать их под раные архитектуры.
(Именно что линковать, потому что код все ровно управляемый и архитектура зардеться флагом в метаданных сборки).
Хотя если речь идет о массивном интеропе и взаимодействию с АПИ то конечно тут С++ и ничто другое (но жизнь не доводила до такого )
В чем плюс Маnaged C++ -- в одном ЕХЕ могут быть и CLR инструкции и машынные коды, но передача управления из разых кусков, думаю, такая же по скорости как и работа с ДЛЛ из под дотнета, разве что спасает статическая линковка.. Ну и удобно обращаться к библиотекам.
Но если просто надо работу с Memory Maped фалом организовать, или просто конвертацию, или какоето пакеты в пайп сувать то и небезопасноо C# хватит.
Ну я собсвенно не агитирую за прикручивания его к Немерле. Но в шарпе оно довольно юзабельно.
З.Ы. глянь как то в рефлектотре коды сгенереные Manged C++ особенно там где используються неуправляемые классы в управляемом коде
Здравствуйте, BogdanMart, Вы писали:
BM>Использовали для ускорения чтения/записи в файл. Ансейф блок позволяет просто прикастовать казатель на масив байтов к другому типу (Мы кастовали к Структу котоый потом пеедавался дальше уже в виде массива), а если бы парсить это все через FileStream.ReadInt, ReadDouble то офигели бы и во время написания и не особо быстро.
Средствами маршалинга можно сделать почти то же самое. По сравнению с дисковым IO разницу в микроскоп не увидеть.