Является ли C ++ CLI надмножеством C ++?
Вопрос
Был бы C ++ CLI компилятор сможет скомпилировать несколько больших наборов классов C ++ без изменений?
Является ли C ++ CLI надмножеством C ++?
Решение
технически нет, но в зависимости от того, насколько стандартен код C ++, у вас, вероятно, все будет хорошо. когда вы попадаете в Windows, вы можете столкнуться с проблемами. Я скомпилировал весь игровой движок, который мы используем на работе в C ++ / CLI, и он работал просто отлично. Коллега сделал то же самое для всей Mozilla и не повезло.
Другие советы
Согласно Википедии :
C ++ / CLI следует рассматривать как собственный язык (например, с новым набором ключевых слов), а не как управляемый C ++ управляемый C ++ управляемый C ++
Я все еще новичок в изучении C ++ / CLI, но у меня был такой же вопрос, и я до сих пор определил, что C ++ / CLI, как язык, является надмножеством стандарт C ++.
Если вы не используете расширения CLI, ваш код C ++ в конечном итоге станет собственным неуправляемым кодом и должен быть по сути таким же, но скомпилированным с CLR IL, а не с собственным x86.
Как только вы начнете использовать расширения CLI (и начнете использовать объекты / дескриптор / управляемые классы), вы начнете интенсивнее взаимодействовать с базовой платформой CLR. В этот момент он, по сути, становится новым «языком», и вам придется разделить свое мышление между «неуправляемым». сторона и «управляемый» сторона. р>
C ++ / CLI не является надмножеством C ++.Это скорее подмножество с дополнениями.Например,Дж.C ++ / CLI не поддерживает множественное наследование.
Анджело
На странице 3 книги Маркуса Хиге «Эксперт C ++ / CLI.NET для программистов на Visual C ++» говорится:
C ++ / CLI - это набор расширений для язык C ++, чтобы извлечь выгоду из услуги, которые реализация CLI предлагает.
И далее вниз по той же странице:
C ++ / CLI - это расширенный набор языка C ++.
Его превосходная книга доступна бесплатно на здесь . р>
Я смог скомпилировать всю библиотеку Qt (которая огромна) как C ++ / CLI с незначительный изменения (в основном в среде сборки, но также исправлена одна ошибка в исходном коде Qt)