Является ли С++ CLI надмножеством С++?

Может ли компилятор С++ CLI скомпилировать некоторые большие наборы классов С++ без изменений?

Является ли С++ CLI надмножеством С++?

Ответы

Ответ 1

технически нет, но в зависимости от того, насколько стандартным является код С++, вы, вероятно, будете в порядке. когда вы попадаете в файлы Windows, вы можете столкнуться с проблемами. Я скомпилировал весь движок игры, который мы используем на работе в С++/CLI, и он работал отлично. Коллега сделал то же самое для всей мозиллы и не повезло.

Ответ 2

Согласно Wikipedia:

С++/CLI следует рассматривать как собственный язык (например, с помощью нового набора ключевых слов), а не с надстрочным С++-ориентированным С++

Ответ 3

Я все еще новичок в своей кривой обучения на С++/CLI, но у меня был тот же вопрос, и то, что я определил до сих пор, заключается в том, что С++/CLI является, как языком, надмножеством стандартный С++.

Если вы не используете расширения CLI, ваш код на С++ окажется в качестве собственного неуправляемого кода и должен быть по существу тем же, но скомпилирован в CLR IL вместо собственного x86.

Как только вы начнете использовать расширения CLI (и начнете попадать в использование объектов/дескрипторов/управляемых классов), вы начнете более активно взаимодействовать с базовой платформой CLR. В этот момент он по существу становится новым "языком", и вам придется отделить свое мышление между "неуправляемой" стороной и "управляемой" стороной.

Ответ 4

С++/CLI не является надмножеством С++. Это скорее подмножество с дополнениями. НАПРИМЕР. С++/CLI не поддерживает множественное наследование.

Анжело

Ответ 5

Страница 3 книги Маркуса Хеге "Эксперт С++/CLI.NET для состояний программистов на Visual С++:

С++/CLI - это набор расширений, сделанных для язык С++, чтобы извлечь выгоду из услуг, реализация CLI предлагает.

И далее по той же странице:

С++/CLI - это надмножество языка С++.

Его отличная книга доступна бесплатно здесь.

Ответ 6

Мне удалось собрать всю библиотеку Qt (которая огромна) как С++/CLI с небольшими изменениями (в основном в среде сборки, но также исправлена ​​одна ошибка в исходном коде Qt)